1. Начало:
- Добро пожаловать на курс!
- Давайте знакомиться!
- Пример с выводом информации о главном и вторичном потоках.
- Пример параллельного запуска рабочих потоков.
- Создание потоков с разными приоритетами, фоновым флагом и именам.
- Замер производительности способов подсчёта суммы массива.
- Самостоятельная работа: сложение матриц.
- Самостоятельная работа: веб-сервис.
- Введение в гонку потоков и критическая секция.
- Самостоятельная работа: система брони билетов.
- Введение в Monitor.
- Самостоятельная работа: билеты на мониторе.
- Проблемы межпроцессного взаимодействия и Mutex.
- ReaderWriterLockSlim.
- Проблема ресурсов: Semaphore и SemaphoreSlim.
- Сигнальные объекты.
- Состояние потоков и взаимная блокировка.
- Возврат результата из вторичного потока.
- Остановка вторичного потока.
- Пул потоков.
- Самостоятельная работа: обновление сервера.
- ThreadPool.RegisterWaitForSingleObject.
- Обработка ошибок в многопоточном приложении.
- Асинхронность и Task: первые шаги.
- Самостоятельная работа: переезд на Task.
- Продолжение выполнения с ContinueWith.
- Самостоятельная работа: ContinueWith.
- Unwrap.
- Обработка исключений в Task.
- Самостоятельная работа: переезд Thread → Task.
- Отмена Task через CancellationTokenSource.
- Волшебные async/await.
- Синтаксис async/await и контекст потока.
- Ошибки await Task.WhenAll.
- Упоминание о Parallel.
- Parallel LINQ.
- Потокобезопасные коллекции.
- Техническое задание: потокобезопасная очередь.
- BlockingCollection.
- Техническое задание: использование BlockingCollection.