Асинхронність — це важлива складова будь-якого сучасного програмного забезпечення. Наприклад, щоб отримати повідомлення від друга в одній із соцмереж, вам не треба кожну секунду перезавантажувати повідомлення — можете спокійно дивитися відео зі стрічки новин, а як тільки друг напише — на екрані з`явиться відповідне повідомлення. Ця і безліч інших подій можливі завдяки асинхронності, котра реалізована розробниками і дозволяє відбуватися кількома подіям паралельно, а не по черзі, що дуже зручно в сучасному високошвидкісному світі.
Тренінг «Асинхронне програмування на C#» буде корисним як розробникам-початківцям, так і досвідченим програмістам, які бажають поліпшити вже наявні знання про актуальні на сьогоднішній день технології створення асинхронного коду. На тренінгу буде поглиблено розглянуто саме поняття асинхронности і сучасні прийоми організації асинхронного виконання ділянок коду мовою C#.
В ході тренінгу Ви опануєте наступні теми: дізнаєтеся про асинхронність, паралельність і багатопоточність, а також їх принципові відмінності. Детально розберете шаблон паралельних обчислень, заснований на Promise, і попрацюєте з класом Task/Task <TResult>. Навчитеся обробляти помилки, застосовувати фабрику завдань, використовувати планувальник завдань. Буде здійснене заглиблення в тему ключових слів async/await — Ви дізнаєтеся безліч корисної інформації щодо роботи з ними. В кінці буде розглянуто паралельне програмування і поєднання паралельних обчислень з асинхронністю.
Попередні вимоги Гарне знання C#, досвід роботи із середовищем розробки Visual Studio.
Програма тренінгу:
1. Введення. Асинхронність, Паралельність та Багатопоточність
2. Шаблон паралельних обчислень, заснований на Promise. Клас Task / Task <TResult>.
- Розбір шаблону
- Реалізація у вигляді класів Task і Task <TResult>
- Відмінності задач від потоків
- Способи очікування і отримання результату від задачі
- Налаштування виконання задач
- Пул потоків під капотом за замовчуванням. Використання виділеного потоку замість пулу
3. Скасування виконання, обробка помилок у задачах.
- Шаблон скоординованого скасування
- Обробка помилок із задач
4. Фабрика завдань. Продовження.
- Розбір фабрики завдань
- Task.Run VS StartNew
- Продовження
- Продовження в задачах
- Продовження у фабриці задач
- Ледаче скасування виконання задачі
5. Планувальник завдань
- Розбір поняття планувальник
- Розбір функціоналу та стану планувальника
- Розбір стандартних планувальників .NET
- Створення кастомних планувальників
6. Ключові слова async await. Технічна реалізація
- Розбір призначення ключових слів async await
- Технічна реалізація з класом Task
- Технічна реалізація з класом Task <TResult>
7. Продовження оператора await.
- Особливості роботи оператора await
- Контекст синхронізації
- Контекст виконання. Відмінності від контексту синхронізації
- Планувальник задач
- Пул потоків
8. Асинхронний шаблон програмування TAP за допомогою async await
- Асинхронність
- Асинхронне програмування. Реалізація TAP
- Асинхронність VS паралельність
- Асинхронні операції
- Створення асинхронних операцій
9. Особливості використання async await
- Async Void
- Async Lambda
- Робота async await WPF / WinForm
- Робота async await ASP.NET
- Обробка винятків від асинхронних операцій
10. Паралельні обчислення
- Клас Parallel
- Паралельний Invoke. Робота під капотом
- Паралельний цикл For. Робота під капотом
- Паралельний цикл ForEach. Робота під капотом
- Поєднання паралельних обчислень з асинхронністю
Після завершення тренінгу Ви зможете:
- Використовувати клас Task із бібліотеки TPL для асинхронного виконання методів
- Керувати виконанням завдань, створюючи користувацький планувальник задач
- Розуміти внутрішню логіку виконання команд на основі ключових слів async / await
- Створювати асинхронні методи з використанням ключових слів async / await
- Застосовувати техніки паралельного програмування для розпаралелювання задач, що виконуються
- Ловити та обробляти виключення, отримані при виконанні асинхронного коду
Коли: з 29 червня по 20 липня 2021 року
Тривалість: 20 годин (10 занять по 2 години)
Час занять: з 19:00 до 21:00 — вт/чт/сб
Формат зустрічей: Live Online сесії (Zoom)
Вартість: 4300 грн.