Асинхронне програмування на C# | IT Заходи

Асинхронне програмування на C#

Дата:29 червня, 2021 р.
Час:19:00-21:00
Ціна:4300 USD
Ведучий:Владислав Гнатюк
.NET Developer
Опис:
Асинхронність — це важлива складова будь-якого сучасного програмного забезпечення. Наприклад, щоб отримати повідомлення від друга в одній із соцмереж, вам не треба кожну секунду перезавантажувати повідомлення — можете спокійно дивитися відео зі стрічки новин, а як тільки друг напише — на екрані з`явиться відповідне повідомлення. Ця і безліч інших подій можливі завдяки асинхронності, котра реалізована розробниками і дозволяє відбуватися кількома подіям паралельно, а не по черзі, що дуже зручно в сучасному високошвидкісному світі.
 
Тренінг «Асинхронне програмування на 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 грн.