آموزش برنامه نویسی ناهمزمان Asynchronous Programming در دات نت

تعداد ویدئو 29
زمان دوره 02:35:48
مترجم مرتضی گیتی
دوبلر مرتضی گیتی
سایت منتشر کننده پلورال سایت

آموزش برنامه نویسی ناهمزمان Asynchronous Programming در دات نت یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی شروع به کار با برنامه نویسی ناهمزمان در دات نت است که با نام اصلی Getting Started with Asynchronous Programming in .NET از شرکت Pluralsight منتشر شده است.

برنامه نویسی ناهمزمان و یا Asynchronous چیست؟

اگر شما قرار است که عملیاتی را انجام بدهید که بیشتر با خواندن و نوشتن داده ها کار می کنند و یا اصطلاحاً I/O Bound هستند بهتر است که از Asynchronous Programming استفاده کنید. برخی از مثال هایی از عملیات I/O Bound شامل درخواست داده از طریق شبکه، دسترسی پیدا کردن به بانک اطلاعاتی و یا خواندن و نوشتن به فایل سیستم می باشند. علاوه بر این موضوع، کدهایی که اصطلاحاً CPU Bound می باشند یعنی در حال انجام محاسبات زمانبر هستند کاندیدای خوبی برای استفاده کردن از کدهای Asynchronous هستند. در زبان برنامه نویسی سی شارپ و فریم ورک دات نت مدل برنامه نویسی Asynchronous به سادگی پیاده سازی شده است. این موضوع به شما کمک می کند تا بتوانید به راحتی کدنویسی ناهمزمان انجام بدهید و با استفاده کردن از کتابخانه مبتنی بر Task ها در فریم ورک دات نت نیازهای خود در برنامه نویسی Asynchronous را پاسخگو باشید.

cpu-bound-io-bound

در فریم ورک دات نت اساس برنامه نویسی Asynchronous استفاده کردن از کلاس های Task و Task جنریک می باشند که به سادگی می‌توانند امکان انجام عملیاتی به صورت Asynchronous را در اختیار ما قرار بدهند. علاوه بر این، کلید واژه های Async و Await نیز می‌توانند در کنار کلاسهای Task استفاده بشوند و عملیات نوشتن کدهای Asynchronous را بیش از پیش ساده کنند. برای انجام کدهای I/O Bound یا همان عملیاتی که بیشتر با خواندن و نوشتن داده ها کار می کنند، شما اصطلاحاً یک عملیات که Task و یا Task جنریک را برمی‌گردانند، Await می‌کنید. این عملیات درون یک متد که به صورت Async تعریف شده است لحاظ می گردد.

برای کدهایی که CPU Bound هستند و محاسبات پیچیده انجام می‌دهند شما یک عملیاتی که در یک Background Thread اجرا شده است را Await میکنید. این Background Thread می‌تواند با استفاده از متد Run از کلاس Task اتفاق افتاده باشد. کلید واژه Await کار بسیار مهمی را در این روند انجام می‌دهد. با استفاده از کلید واژه Await شما در واقع می توانید کنترل را به Caller و یا فراخواننده متد اصلی برگردانده و UI Thread برنامه را Responsive نگه دارید. البته ذکر این نکته نیز ضروری است که برای استفاده کردن از کدهای Asynchronous در فریم ورک دات نت و برنامه نویسی همروند روش های مختلف دیگری نیز به جای استفاده کردن از کلید واژه های Async و Await وجود دارند.

async-programming-c

در زمان استفاده کردن از عملیات Asynchronous و به کار بردن کلاس های Task و Task جنریک کامپایلر سی شارپ به سادگی کد شما را به یک State Machine و یا ماشین حالت تبدیل می‌کند. این State Machine باعث می شود که در زمان برخورد با کلمه کلیدی Await روند اجرای برنامه به Caller برگردانده بشود و اجرا شدن برنامه در زمان تکمیل شدن یک Background Job از سر گرفته بشود. برخی از نکات بسیار مهم که باید در رابطه با موارد استفاده Asynchronous Programming را بدانید در قسمت زیر برای شما آورده شدند.

  • برنامه نویسی Asynchronous و کدهای ناهمزمان می‌‌توانند هم برای عملیات I/O Bound استفاده بشوند و هم برای عملیات CPU Bound اما هرکدام سناریوهای منحصر به فرد خاص خود را دارند.
  • کدهایی که به صورت Asynchronous نوشته می‌شوند از کلاس Task و یا کلاس Task جنریک استفاده می‌کنند. این کلاس‌ها باعث می‌شوند که به سادگی بتوانیم یک عملیات را در Background اجرا کنیم.
  • استفاده کردن از کلمه کلیدی Async در تعریف کردن یک متد باعث می‌شود که بتوانیم در بدنه آن متد از کلمه کلیدی Await استفاده کنید.
  • زمانی که روند اجرای برنامه به دستور Await می‌رسد متد فراخوانده شده متوقف می‌شود و کنترل اجرا به متد فراخواننده و یا Caller برگردانده می‌شود. این موضوع تا زمانی اتفاق می‌افتد که عملیاتی که در حال Await کردن آن هستید تکمیل بگردد.
  • از کلید واژه Await فقط می‌توانید در متدهایی که به صورت Async این تعریف شده‌اند استفاده کنید.

ضمناً ذکر این نکته نیز ضروری است که در کنار این بسته آموزشی می توانید در صورت تمایل از آموزش برنامه نویسی چند نخی Multithreading در سی شارپ از وبسایت پرووید نیز دیدن کنید.

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

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

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

فصل دوم: بررسی کردن Asynchronous Programming و یا برنامه نویسی غیر همزمان در فریمورک دات نت با استفاده از Async و Await

  • راه اندازی کردن فایلهای مربوط به این آموزش
  • معرفی کردن Async و Await در فریمورک دات نت
  • درک کردن یک Continuation
  • ایجاد کردن اولین متد Asynchronous
  • مدیریت کردن یک Exception
  • استفاده از بهترین روش‌ها

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

  • معرفی کردن یک Task
  • به دست آوردن Result مربوط به یک Task
  • مدیریت Success و Failure در روند اجرا شدن Task ها
  • پیاده سازی Task Cancellation
  • دانستن اینکه آیا همه Task ها و یا حداقل یکی از آنها با موفقیت انجام شده باشد
  • محاسبه کردن Result مربوط به Task ها از قبل
  • پردازش کردن Task ها در زمانی که تکمیل می‌شوند
  • کنترل کردن اجرای Continuations ها بر روی Context های مختلف
  • مهمترین نکات مربوط به این فصل

فصل چهارم: برنامه نویسی موازی با استفاده از Parallel Extensions ها

  • معرفی کردن Parallel Extensions ها
  • پردازش کردن یک Collection از دادن به صورت موازی
  • کار کردن با متغیر ها و کالکشن های اشتراکی
  • جمع بندی

فصل پنجم: نکات پیشرفته در برنامه نویسی غیر همزمان

  • معرفی مباحث پیشرفته
  • گزارش گرفتن از روند پیشرفت اجرای یک Task
  • استفاده کردن از Task Completion Source
  • کار کردن با Attached Task ها و Detached Task ها
  • تئاثیر استفاده کردن از Async و Await
  • بررسی بن بست و یا Deadlock
  • کار کردن با Stream های Asynchronous
  • جمع بندی دوره آموزشی

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

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

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

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

دسته های محصولات

افزودن به سبد خرید