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

در سی شارپ، برای ایجاد برنامههای غیرهمزمان، از کلیدواژه async و await استفاده میشود. این رویکرد به برنامهنویسان امکان میدهد تا عملیاتهای طولانیمدت مانند دسترسی به پایگاهداده یا درخواستهای شبکه را بدون بلاک شدن کد پیادهسازی کنند. بنابراین، برنامههای غیرهمزمان در سی شارپ بهبود کارایی و کاربردیتر شدن برنامهها را به ارمغان میآورند.
مقایسه برنامه نویسی موازی و برنامه نویسی غیرهمزمان
تفاوت بین برنامهنویسی موازی و برنامهنویسی غیرهمزمان در زبانهای برنامهنویسی، به دو رویکرد مختلف در اجرای عملیاتها اشاره دارد. برنامهنویسی موازی به معنای اجرای چندین عملیات همزمان و موازی است. در این روش، عملیاتها در یک زمان اجرا میشوند و تسریع کارایی و افزایش سرعت اجرای برنامه میسر میشود. از طرفی، برنامهنویسی غیرهمزمان به معنای اجرای عملیاتها به صورت مستقل و بدون بلاکشدن برنامه است.

در این روش، عملیاتها به صورت غیرهمزمان انجام میشوند و برنامه اجرای عملیاتهای طولانیمدت مانند دسترسی به پایگاهداده یا درخواستهای شبکه را بدون تأخیر اجرایی انجام میدهد. در نتیجه، برنامهنویسی غیرهمزمان برای مدیریت منابع و بهبود کارایی برنامهها، به خصوص در برنامههایی با دسترسی به منابع بیرونی، مورد استفاده قرار میگیرد. هر دو رویکرد میتوانند بهبود کارایی و کاربردیتر شدن برنامهها را به ارمغان بیاورند، اما متناسب با نیازها و محیطهای مختلف، استفاده از یکی از این رویکردها میتواند مناسبتر باشد.
طراحی متدهای Async با Task و مدیریت لغو عملیات
در این آموزش پیشرفته، استفاده از Async و Await در C# از مرحله آشنایی با دستور زبان فراتر میرود و به ساخت متدهای غیرهمزمان میرسد. وقتی یک عملیات مانند دریافت اطلاعات از سرویس یا خواندن داده زمانبر است، استفاده مناسب از الگوی غیرهمزمان میتواند از مسدود شدن جریان اجرای فراخواننده جلوگیری کند. درسهای مربوط به ایجاد Asynchronous Method و استفاده از Task، مبانی لازم برای نمایش نتیجه یک عملیات در آینده را توضیح میدهند. همچنین بررسی عملیاتهای تودرتو به درک بهتر زنجیرهای از فراخوانیهای غیرهمزمان کمک میکند.
مدیریت چرخه اجرای Task نیز بخش مهمی از این آموزش است. در سرفصلهای آموزش، لغو و متوقف کردن Task بررسی میشود؛ موضوعی که در برنامههای واقعی، هنگام لغو درخواست کاربر یا پایان یافتن نیاز به ادامه یک عملیات، اهمیت دارد. در کنار آن، بررسی روش از قبل محاسبهشده یک Task و مطالعه Best Practice ها به انتخاب شکل مناسب پیادهسازی کمک میکنند. این مباحث برای توسعهدهندگانی کاربرد دارند که میخواهند کدهای غیرهمزمان خود را قابلفهمتر و قابلکنترلتر بنویسند و از پیچیدگیهای ناشی از مدیریت نادرست Task ها جلوگیری کنند.
شناخت Execution Context و Continuation در Task Parallel Library
Task Parallel Library مجموعهای از امکانات .NET برای کار با Task ها و عملیات مرتبط با اجرای همزمان و غیرهمزمان فراهم میکند. این آموزش علاوه بر مباحث پایه Async و Await، به بررسی قابلیتهای مفید TPL و نحوه ادامه اجرای کد پس از تکمیل یک عملیات میپردازد. مفهوم Continuation برای زمانی مهم است که انجام یک مرحله به نتیجه مرحله قبلی وابسته باشد. درک این رفتار به شما کمک میکند جریان اجرای برنامه را بهتر تحلیل کنید و هنگام ترکیب چند عملیات، از ترتیب مورد انتظار مراحل آگاه باشید.
در بخشهای پیشرفتهتر، Execution Context و کنترل Continuation بررسی میشوند؛ موضوعاتی که هنگام تحلیل رفتار کدهای غیرهمزمان اهمیت پیدا میکنند. آموزش همچنین به Best Practice ها و بررسی عمیقتر Async و Await اختصاص دارد تا توسعهدهنده تنها به نوشتن کد با کلیدواژههای مربوطه اکتفا نکند، بلکه پیامدهای انتخابهای خود را نیز در نظر بگیرد. این آموزش برای کسانی مناسب است که در پروژههای C# با عملیات غیرهمزمان سروکار دارند و میخواهند ساختار Task ها، ادامه اجرای عملیات و نکات پیشرفتهتر این الگو را با دید دقیقتری بررسی کنند.
سرفصل مطالب آموزش ویدیویی برنامه نویسی غیرهمزمان (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
- جمع بندی و نکات پایانی







