Сообщество DotNetRu совместно с издательством «Питер» завершило перевод книги Нира Добовицки «C# Concurrency». Мы тщательно выверили терминологию, сгладили стиль и сохранили точность оригинала. Это практическое руководство для тех, кто хочет уверенно проектировать конкурентные компоненты на .NET 8/9 — без догадок и шаманства.
Возможно вы уже читали анонс от издательства, а в этой статье традиционно поделимся нашим мнением о книге и расскажем про работу над переводом.

Зачем это вам, если вы уже «слышали про await»?
В продакшене системы чаще упираются не в алгоритмы, а в то, как вы распараллеливаете работу и как управляете потоками/контекстом/отменой. Книга объясняет конкурентность «изнутри»: что делает компилятор с async/await, почему контекст исполнения важен, где параллелизм действительно ускоряет, а где только «ломает» предсказуемость.
После прочтения вы сможете:
отличать асинхронность (I/O) от параллелизма (CPU) и выбирать инструмент осознанно;
избегать «дедлоков» из-за захвата контекста и знать, когда уместен
ConfigureAwait(false)
;стримить данные через
IAsyncEnumerable
/await foreach
с тайм-аутами и отменой;централизовать обработку исключений (никакого «потерянного»
async void
);понимать, где
System.Collections.Frozen
действительно экономит время и память.
Что внутри
Книга состоит из двух частей и 14 глав — от базовых концепций к практикам.
Часть I — основы и принципы
Модель async/await: как компилятор «переписывает» код, что это значит с точки зрения производительности и трейсинга.
Выбор потока/контекста: ASP.NET, UI и фоновая работа; применимость
ConfigureAwait(false)
.Исключения в асинхронности: почему
async void
— плохая идея и что следует использовать взамен.Потокобезопасные коллекции и примитивы синхронизации.
IAsyncEnumerable
: стриминг данных и кооперативная отмена.
Часть II — практики и паттерны
Каналы/очереди и пайплайны с backpressure.
Работа с
CancellationToken
и «чистое» завершение фоновых операций.Балансировка нагрузки пула потоков.
await foreach
в продакшене: отмена итераций, тайм-ауты, ретраи.Где уместны
System.Collections.Frozen
(и где нет).
Примеры короткие и воспроизводимые — без лишней инфраструктуры. Исходники доступны на GitHub.
Для кого эта книга
Книга будет полезна специалистам различной квалификации. Junior разработчики смогут перестать бояться асинхронности и начать её понимать. Программисты уровня Middle — «подружить» async/await с продакшеном: отмена, исключения, пайплайны. Senior/Lead инженеры найдут пользу в унификации подходов в команде и ускорении сервисов без «магических» регрессий.
Где применять
Высоконагруженные API/интеграции: fan-out на Task.WhenAll
, backpressure в конвейерах, отмена по обрыву клиента.
Фоновые обработки: каналы/очереди с await foreach
, равномерная загрузка пула потоков.
Каталоги/справочники: FrozenDictionary
для валют/регионов/прав доступа — быстро и экономно.
О переводе

Радмир Тагиров
Работа над этой книгой вместе с командой DotNetRu стала для меня ценным опытом. Это уже пятый перевод, в котором я участвую, и каждый раз он даёт новые знания. Здесь я глубже разобрался в современных подходах к конкурентности и асинхронному программированию в C#.
Главное достоинство книги — её основательность. Автор не ограничивается примерами кода, а подробно раскрывает лежащие за ними концепции. Благодаря этому читатель получает цельное понимание параллелизма, асинхронных операций и потокобезопасности. Книга будет полезна как начинающим разработчикам, так и опытным специалистам.
«C# Concurrency» удачно сочетает теорию и практику. Материал изложен ясно и без упрощений, позволяя не только освоить инструменты, но и понять, как они работают «под капотом».

Азамат Сулейманов
Какая удача, что в этот раз нашей команде переводов DotNetRu досталась книга по этой теме! Освежить знания по многопоточке и асинхронности — всегда хорошо, а плотно поработать с текстом — вообще прекрасно. Достаточно сложная тема разъясняется здесь понятно и доступно, на примерах. Приводятся границы применимости конкретных техник, а также рассматривается достаточное количество «готовых велосипедов» — коллекций и конструкций .NET из стандартной библиотеки на все случаи жизни. Книга обязательно зайдет как начинающим разработчикам, так и инженерам с опытом.

Сергей Бензенко
Очередная книга, над переводом которой я работал в команде DotNetRu. В этот раз удалось вычитать книгу от начала и до конца. Многопоточность и асинхронность, наверное, всегда будут главными темами вопросов на собеседованиях, а также рассуждений и споров в командах разработчиков. Тема неисчерпаема, и полностью её понимают, кажется, очень немногие. Эта книга — довольно компактное (всего 270 страниц), но при этом полезное руководство по тому, как работает конкурентность в C#, и как вам работать с ней. Автор неплохо раскрывает все особенности и нюансы. Для начинающих в начале книги на доступных аналогиях из жизни разбираются основы многопоточности и асинхронности. Если для вас async/await до сих пор было магией, из первых глав книги вы узнаете, как это всё устроено «под капотом» и что ничего волшебного там нет. Для опытных разработчиков, уже знакомых с основами, в последующих главах разбираются более продвинутые способы применения. Поэтому независимо от того, только начинаете вы изучение конкурентности, либо просто хотите освежить материал и закрепить знания, книга вам подойдет.

Дмитрий Павлов
Еще одна полезная книга, над переводом которой работала команда DotNetRu.
Это руководство — настоящий подарок для всех .NET-разработчиков, которые не просто хотят писать код, а создавать по-настоящему эффективные и надежные приложения. Как отметили коллеги, автор не просто загружает читателя сухой теорией, а на реальных примерах показывает описываемые концепции и какие идеи в них заложены.
После прочтения начинаешь по-новому смотреть на многопоточность и асинхронность — не как на что-то сложное и пугающее, а как на мощные инструменты в руках разработчика. Советую к прочтению всем C#-разработчикам!
Благодарности и заключение
Команду переводов DotNetRu нельзя представить без этих двух человек, идейные вдохновители и лидеры команды

Игорь Лабутин

Анатолий Кулаков
Также команда DotNetRu выражает огромную благодарность людям, которые принимали активное участие в переводе и правках:
Сергей Бензенко
Евгений Бестфатор
Максим Кушнирук
Ренат Тазиев
Степан Филиппов
Дмитрий Павлов
Евгений Асташев
Рустам Сафин
Кирилл Вишневский
Константин Игнаков
Владимир Майоров
Азамат Сулейманов
Радмир Тагиров
Сергей Мозговой
Максим Молоканов
Иван Курилов
Александр Заозерский
Алексей Синютин
Василий Иващенко
Антон Шевяков
Никита Бандурин
Андрей Брижак
Книга уже доступна на сайте издателя, даже добыли вам промокод DotNetRu
.
В этом месте мы обычно пишем, что если вам интересно принять участие в переводе книг, пообщаться с редакторами перевода, задать вопросы, предложить новые книги или просто подискутировать на тему переводов, то ждем вас в нашем телеграм-чате.
Но в этот раз в довесок к чату есть отличный вариант: приходите на наш совместный с издательством круглый стол «Перевод IT-книг. От идеи до книжной полки» на конференции DotNext 18 сентября.
О нас
DotNet.Ru — это группа независимых сообществ .NET разработчиков со всей России. Мы объединяем людей вокруг .NET платформы, чтобы способствовать обмену опытом и знаниями. Проводим регулярные встречи, чтобы делиться новостями и лучшими практиками в разработке программных продуктов.
Организуем митапы и выкладываем записи докладов на YouTube.
Делимся новостями в VK и TG, общаемся в чатике.
Ведём подкасты: RadioDotNet, DotNet & More и BookClub DotNet.
Комментарии (0)
IlyaStroynov
15.09.2025 07:40нет, я больше не буду покупать новые книги, пока не прочитаю те, что уже взял)) только по C# три в очереди)
mr_bag
Огромное спасибо за перевод.
С нетерпением ждём новостей о непреодолимом желании перевести вторую редакцию книги об управлении памяти ;)