اشتراکها
Microsoft و ارائه زبان P
اشتراکها
سایت آموزشی: C# Station
اشتراکها
کتاب رایگان T4 Succinctly
Familiarity with code generation tools is key for modern software
engineers, and whether you know it or not, you’re probably already using
one. In T4 Succinctly by Nick Harrison, you’ll learn what goes
on behind the scenes during code generation with T4, Visual Studio’s
built-in code generator. Then, use those principles to apply metadata to
a template and transform it into source code in a variety of languages.
Threads App UI Design in Figma step by step UI/UX Design + Link
Designing a great app that offers a seamless user experience can be a challenging task, especially when you have numerous components to manage. Figma, a collaborative interface design tool, has become a popular choice for UI/UX designers. In this article, we'll explore the process of designing Threads, a messaging app, from scratch in Figma. We'll walk you through the complete UI/UX design process, including wireframing, prototyping, and design system creation.
بدون هیچ مطلب اضافی به سراغ اولین مثال میرویم. قطعه کد زیر را در نظر بگیرید :
در کد بالا کلاس Task نقش اصلی را بازی میکند.این کلاس قلب کتابخانه برنامه نویسی Task یا Task Programming Library میباشد.
در این بخش با موارد زیر در مورد Taskها آشنا میشویم:
- ایجاد و به کار انداختن انواع مختلف Task ها.
- کنسل کردن Task ها.
- منتظر شدن برای پایان یک Task.
- دریافت خروجی یا نتیجه از یک Task پایان یافته.
- مدیریت خطا در طول انجام یک Task
خب بهتر است به شرح کد بالا بپردازیم:
رای استفاده از کلاس Task باید فضای نام System.Threading.Tasks را بصورت ریر مورد استفاده قرار دهیم.
این فضای نام نقش بسیار مهمی در برنامه نویسی Taskها دارد . فضای نام بعدی معروف است :
System.Threading . اگر با برنامه نویسی تریدها بروش مرسوم وکلاسیک آشنایی دارید قطعاً با این فضای نام آشنایی دارید. اگر بخواهیم با چندین Task بطور همزمان کار کنیم به این فضای نام نیاز مبرم داریم. پس :
خب رسیدیم به بخش مهم برنامه :
متد استاتیک Task.Factory.StartNew یک Task جدید را ایجاد و شروع میکند که
متن Hello Word را در خروجی کنسول نمایش میدهد. این روش سادهترین راه
برای ایجاد و شروع یک Task است.
در بخشهای بعدی چگونگی ایجاد Taskهای پیچیدهتر را بررسی خواهیم کرد . خروجی برنامه بالا بصورت زیر خواهد بود:
روشهای مختلف ایجاد یک Task ساده :
- ایجاد کلاس Task با استفاده از یک متد دارای نام که در داخل یک کلاس Action صدا زده میشود. مثال :
استفاده از یک delegate ناشناس (بدون نام). مثال :
- استفاده از یک عبارت لامبدا و یک متد دارای نام . مثال :
- استفاده از یک عبارت لامبدا و یک متد ناشناس (بدون نام). مثال :
قطعه کد زیر مثال خوبی برای چهار روشی که در بالا شرح دادیم میباشد:
خروجی برنامه بالا بصورت زیر است :
نکته 1 : از مند استاتیک Task.Factory.StartNew برای ایجاد Task هایی که رمان اجرای کوتاه دارند استفاده میشود.
نکته 2 : اگر یک Taskدر حال اجرا باشد نمیتوان آنرا دوباره استارت نمود باید برای یک نمونه جدید از آن Task ایجاد نمود و آنرا استارت کرد.
using System; using System.Threading.Tasks; namespace Listing_01 { class Listing_01 { static void Main(string[] args) { Task.Factory.StartNew(() => { Console.WriteLine("Hello World"); }); // wait for input before exiting Console.WriteLine("Main method complete. Press enter to finish."); Console.ReadLine(); } }
در کد بالا کلاس Task نقش اصلی را بازی میکند.این کلاس قلب کتابخانه برنامه نویسی Task یا Task Programming Library میباشد.
در این بخش با موارد زیر در مورد Taskها آشنا میشویم:
- ایجاد و به کار انداختن انواع مختلف Task ها.
- کنسل کردن Task ها.
- منتظر شدن برای پایان یک Task.
- دریافت خروجی یا نتیجه از یک Task پایان یافته.
- مدیریت خطا در طول انجام یک Task
خب بهتر است به شرح کد بالا بپردازیم:
رای استفاده از کلاس Task باید فضای نام System.Threading.Tasks را بصورت ریر مورد استفاده قرار دهیم.
using System.Threading.Tasks;
System.Threading . اگر با برنامه نویسی تریدها بروش مرسوم وکلاسیک آشنایی دارید قطعاً با این فضای نام آشنایی دارید. اگر بخواهیم با چندین Task بطور همزمان کار کنیم به این فضای نام نیاز مبرم داریم. پس :
using System.Threading;
Task.Factory.StartNew(() => { Console.WriteLine("Hello World"); });
در بخشهای بعدی چگونگی ایجاد Taskهای پیچیدهتر را بررسی خواهیم کرد . خروجی برنامه بالا بصورت زیر خواهد بود:
Main method complete. Press enter to finish. Hello World
- ایجاد کلاس Task با استفاده از یک متد دارای نام که در داخل یک کلاس Action صدا زده میشود. مثال :
Task task1 = new Task(new Action(printMessage));
Task task2 = new Task(delegate { printMessage(); });
Task task3 = new Task(() => printMessage());
Task task4 = new Task(() => { printMessage(); });
using System; using System.Threading.Tasks; namespace Listing_02 { class Listing_02 { static void Main(string[] args) { // use an Action delegate and a named method Task task1 = new Task(new Action(printMessage)); // use a anonymous delegate Task task2 = new Task(delegate { printMessage(); }); // use a lambda expression and a named method Task task3 = new Task(() => printMessage()); // use a lambda expression and an anonymous method Task task4 = new Task(() => { printMessage(); }); task1.Start(); task2.Start(); task3.Start(); task4.Start(); // wait for input before exiting Console.WriteLine("Main method complete. Press enter to finish."); Console.ReadLine(); } static void printMessage() { Console.WriteLine("Hello World"); } } }
Main method complete. Press enter to finish. Hello World Hello World Hello World Hello World
نکته 2 : اگر یک Taskدر حال اجرا باشد نمیتوان آنرا دوباره استارت نمود باید برای یک نمونه جدید از آن Task ایجاد نمود و آنرا استارت کرد.