Асинхронность — это важная составляющая любого современного ПО. К примеру, чтобы получить сообщение от друга в одной из соцсетей, вам не надо каждую секунду перезагружать переписку — можете спокойно смотреть видео из новостной ленты, а как только друг напишет — на экране высветится соответствующее уведомление. Это и множество других событий возможны благодаря асинхронности, которая реализована разработчиками и позволяет происходить нескольким событиям параллельно, а не поочередно, что очень удобно в современном высокоскоростном мире.
Тренинг «Асинхронное программирование на 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 грн