Асинхронний підхід до програмування дозволяє створювати код, виконання якого не буде блокувати виконання іншого коду. Завдяки такому підходу, наприклад, одночасно може бути виконано багато різних задач або можна розділити виконання однієї великої задачі на частини, що можуть бути виконані не послідовно, одна за одною, а одночасно.
Даний курс знайомить з підходами до асинхронного програмування в мові C#. Ви познайомитесь із засобами асинхронного та паралельного програмування, прикладами застосування цих підходів, з тим, що поєднує та відокремлює ці підходи до розробки. На курсі ви познайомитесь із шаблоном асинхронного програмування TAP (Task-based Asynchronous Pattern), порівняєте його з шаблонами APM та EAP. Також ви розберетесь у тому, чим є ключові слова async/await, розглянете їх технічну реалізацію, щоб краще розуміти, як працює ваш асинхронний код. Далі ви розглянете, що таке Thread та ThreadPool та як вони приймають участь у виконанні асинхронного коду, налаштування продовження задачі (TaskContinuation), планувальник задач (TaskScheduler) та контекст синхронізації, приклади роботи з великою кількістю задач, теорію блокування та синхронізації в багатопоточному середовищі та реалізацію цих засобів в .NET (як-от монітор, семафор, м’ютекс та інші).
Окремо на курсі розглядаються потокобезпечні колекції, їх призначення та будова, що таке розподілене програмування, види багатозадачності - витискальна та не витискальна. Ви познайомитесь з різними засобами класу Parallel та методами PLINQ, розглянете різні шаблони паралельної та асинхронної обробки даних.
Цей курс підійде як новачкам у програмуванні, так і досвідченим .NET розробникам, які хочуть покращити свої знання із асинхронного та паралельного програмування в C#. Для розуміння розглянутих у курсі тем знадобиться знання мови C# на рівні C# Поглиблений.
Це перший урок курсу, метою якого є ознайомлення із основною термінологією, сферами використання та засобами асинхронного програмування. Важливою частиною цього та наступних уроків є практичні приклади застосування методів асинхронного програмування для розв’язання різних задач, тож студенту бажано встановити одну з IDE, що підтримують синтаксис С#.