Если вы побаиваетесь конкурентного и многопоточного программирования, эта книга
написана для вас. Стивен Клири предоставляет в ваше распоряжение 85 рецептов работы
с .NET и C# 8.0, необходимых для параллельной обработки и асинхронного программирова-
ния. Конкурентность уже стала общепринятым методом разработки хорошо масштабируемых
приложений, но параллельное программирование остается непростой задачей. Подробные
примеры и комментарии к коду позволят разобраться в том, как современные инструменты
повышают уровень абстракции и упрощают конкурентное программирование. Вы научитесь
использовать async и await для асинхронных операций, расширять возможности кода за счет
использования асинхронных потоков, исследовать потенциал параллельного программи-
рования с библиотекой TPL Dataflow, создавать конвейеры потоков данных с библиотекой
TPL Dataflow, задействовать функциональность System.Reactive на базе LINQ, использовать
потоково-безопасные и неизменяемые коллекции, проводить модульное тестирование конку-
рентного кода, брать под контроль пул потоков, реализовывать корректную кооперативную
отмену, анализировать сценарии на предмет объединения конкурентных методов, пользоваться
всеми возможностями асинхронно-совместимого объектно-ориентированного программи-
рования, распознавать и создавать адаптеры для кода, в котором используются старые стили
асинхронного программирования.
Аннотация
Если вы побаиваетесь конкурентного и многопоточного программирования, эта книга
написана для вас. Стивен Клири предоставляет в ваше распоряжение 85 рецептов работы
с .NET и C# 8.0, необходимых для параллельной обработки и асинхронного программирова-
ния. Конкурентность уже стала общепринятым методом разработки хорошо масштабируемых
приложений, но параллельное программирование остается непростой задачей. Подробные
примеры и комментарии к коду позволят разобраться в том, как современные инструменты
повышают уровень абстракции и упрощают конкурентное программирование. Вы научитесь
использовать async и await для асинхронных операций, расширять возможности кода за счет
использования асинхронных потоков, исследовать потенциал параллельного программи-
рования с библиотекой TPL Dataflow, создавать конвейеры потоков данных с библиотекой
TPL Dataflow, задействовать функциональность System.Reactive на базе LINQ, использовать
потоково-безопасные и неизменяемые коллекции, проводить модульное тестирование конку-
рентного кода, брать под контроль пул потоков, реализовывать корректную кооперативную
отмену, анализировать сценарии на предмет объединения конкурентных методов, пользоваться
всеми возможностями асинхронно-совместимого объектно-ориентированного программи-
рования, распознавать и создавать адаптеры для кода, в котором используются старые стили
асинхронного программирования.