ConfigureAwait(false). Почему его любят в библиотеках При await .NET… — Библиотека шарписта | C#, F#, .NET, ASP.NET — TG.ME

🤨 ConfigureAwait(false). Почему его любят в библиотеках

При await .NET по умолчанию старается продолжить выполнение в захваченном контексте. Например, в UI-приложении это позволяет после await снова работать с UI-потоком. Но библиотеке обычно всё равно, в каком контексте продолжать работу. Поэтому там часто пишут:


var data = await httpClient
.GetStringAsync(url)
.ConfigureAwait(false);


ConfigureAwait(false) говорит: не нужно возвращать продолжение в исходный контекст.

✅ Это особенно важно для библиотек: они не должны предполагать, что вызывающий код использует конкретный UI или другой SynchronizationContext.

Есть и классический сценарий с deadlock:


var result = GetDataAsync().Result;


Если GetDataAsync() после await пытается вернуться в занятый контекст, продолжение не может выполниться, а .Result не может завершиться.

В ASP.NET Core собственного SynchronizationContext для запросов нет, поэтому классическая проблема с .Result и захватом контекста там не возникает по этой причине.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека шарписта

#il_люминатор
💯6👍4
August 23, 2026 3.1K 1 22