آموزش برنامه نویسی غیرهمزمان (Asynchronous Programming) در سی شارپ

1,599,000 ریال

خرید دانلودی آموزش ویدیویی برنامه نویسی غیرهمزمان (Asynchronous Programming) در سی شارپ

دانلود دمو
سایت منتشر کنندهپلورال سایت
تعداد ویدیو34
مترجممرتضی گیتی
مدت زمان03:19:14
دوبلرمرتضی گیتی

آموزش برنامه نویسی غیرهمزمان (Asynchronous Programming) در سی شارپ یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی برنامه نویسی غیرهمروند (Asynchronous Programming) در سی شارپ است که با نام اصلی #Applying Asynchronous Programming in C از شرکت Pluralsight منتشر شده است.

مروری بر Asynchronous Model

هسته برنامه نویسی async اشیاء Task و <Task<T است که عملیات ناهمزمان را مدل می کند. آنها توسط async و کلمه کلیدی await پشتیبانی می شوند این مدل در اکثر موارد نسبتاً ساده است:

  • برای کد یک سناریوی I/O-bound: شما منتظر عملیاتی هستید که Task یا <Task<T را در داخل متد async باز می گرداند.
  • برای کد یک سناریوی CPU-bound: شما منتظر عملیاتی هستید که در یک background thread با روش Task.Run اجرا می شود.

کلمه کلیدی await جایی است که اتفاق اصلی می افتد. این دستور کنترل را به متد فراخواننده بر می گرداند که یک سرویس حالت elastic یا ارتجاعی داشته باشد.

مثالی از یک سناریوی I/O-bound: دانلود کردن داده ها از یک web service

وقتی دکمه ای را فشار می دهید ممکن است لازم باشد برخی از داده ها را از یک web service دانلود کنید، اما نخواهید UI thread را مسدود کنید. می توان اینگونه انجام داد:

private readonly HttpClient _httpClient = new HttpClient();

downloadButton.Clicked += async (o, e) =&amp;amp;gt;
{
    // This line will yield control to the UI as the request
    // from the web service is happening.
    //
    // The UI thread is now free to perform other work.
    var stringData = await _httpClient.GetStringAsync(URL);
    DoSomethingWithData(stringData);
};

این کد قصد و هدف را بدون درگیر شدن و تعامل با Task object ها بیان می کند.

Applying Asynchronous Programming in C-sharp snapshot

مثالی از یک سناریوی CPU-bound: اجرا کردن محاسبات مربوط به یک بازی

اگر در حال نوشتن یک بازی تلفن همراه هستید که در آن با فشار دادن یک دکمه می توانید به بسیاری از دشمنان روی صفحه آسیب وارد کنید. اندازه خسارت می تواند سنگین باشد و انجام آن روی UI thread باعث می شود که بازی در حین محاسبه متوقف شود!

بهترین راه برای حل این مشکل این است که یک background thread ایجاد کنید، که کار را با استفاده از Task.Run انجام می دهد و با استفاده از await منتظر نتیجه آن باشید. این باعث می شود تا UI برنامه روان اجرا شود، درحالی که پردازش ها هم درحال انجام هستند.

private DamageResult CalculateDamageDone()
{
    // Code omitted:
    //
    // Does an expensive calculation and returns
    // the result of that calculation.
}

calculateButton.Clicked += async (o, e) =&amp;amp;gt;
{
    // This line will yield control to the UI while CalculateDamageDone()
    // performs its work. The UI thread is free to perform other work.
    var damageResult = await Task.Run(() =&amp;amp;gt; CalculateDamageDone());
    DisplayDamage(damageResult);
};

این کد به طور واضح هدف رویداد کلیک مربوط به یک button را بیان می کند، نیازی به مدیریت دستی یک background thread ندارد و این کار را به non-blocking انجام می دهد.

سرفصل مطالب آموزش ویدیویی برنامه نویسی غیرهمزمان (Asynchronous Programming) در سی شارپ

فصل اول: مقدمه این دوره آموزشی

  • مقدمه این دوره آموزشی

فصل دوم: شروع برنامه نویسی ناهمزمان در سی شارپ با استفاده از Async و Await

  • برنامه نویسی ناهمزمان در .NET
  • راه اندازی فایل های تمرینی
  • معرفی Async و Await در سی شارپ
  • درک یک Continuation
  • ایجاد کردن یک Asynchronous Method
  • مدیریت استثنائات
  • بررسی Best Practice ها

فصل سوم: استفاده کردن از Task Parallel Library برای برنامه نویسی Asynchronous

  • معرفی یک Task
  • ایجاد عملیات ناهمزمان با استفاده از یک Task
  • به دست آوردن نتایج یک Task
  • پیاده سازی کردن عملیات Asynchronous به صورت Nested و یا تو در تو
  • هندل کردن موفقیت و یا شکست در انجام یک Task
  • لغو و توقف Task1
  • عملیات لغو با HTTPClient4m
  • جمع بندی

فصل چهارم: بررسی متد های مفید در Task Parallel Library

  • بررسی Task Parallel Library
  • دانستن زمان انجام همه یا یک Task
  • روش از قبل محاسبه شده یک Task
  • پردازش Task ها تکمیل آنها
  • بررسی Execution Context و کنترل کردن Continuation
  • بررسی ConfigureAwait درNET
  • جمع بندی

 فصل پنجم: مباحث پیشرفته و Best Practices های مربوط به Async و Await

  • مباحث پیشرفته مربوط به Async و Await
  • کار کردن با Asynchronous Stream ها و Asynchronous Disposable ها
  • بررسی مفاهیم Async و Await
  • کاهش حجم State Machine ها
  • بررسی بن بست و یا Deadlock
  • جمع بندی

فصل ششم: برنامه نویسی ناهمزمان Deep Dive

  • مباحث پیشرفته Advanced Topic
  • گزارش پیشرفت یک Task
  • استفاده از Task Completion Source
  • کار با Task های Detached و Attached
  • جمع بندی و نکات پایانی

نقد و بررسی‌ها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین کسی باشید که دیدگاهی می نویسد “آموزش برنامه نویسی غیرهمزمان (Asynchronous Programming) در سی شارپ”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *