Расскажите про SynchronizationContext — что это такое, где используется?

SynchronizationContext задаёт, куда отправлять продолжение работы. Он используется, например, для возврата к UI-потоку; обычный await учитывает текущий контекст, если он есть.

Короткий ответ

Что ответить на собеседовании

SynchronizationContext задаёт, куда отправлять продолжение работы. Он используется, например, для возврата к UI-потоку; обычный await учитывает текущий контекст, если он есть.

Подробный разбор

Ответ с пояснениями

SynchronizationContext задаёт, куда отправлять продолжение работы. Он используется, например, для возврата к UI-потоку; обычный await учитывает текущий контекст, если он есть.

Контекст не равен потоку и сам по себе не является блокировкой. В UI он обычно связан с очередью одного потока; базовая реализация может направлять работу в ThreadPool.

ConfigureAwait(false) запрещает захват контекста данным await, но не обещает отдельный поток. В ASP.NET Core обычно нет специального SynchronizationContext. Блокирующие Result/Wait в UI опасны: продолжение может ждать поток, который сам заблокирован ожиданием.

Источник: devblogs.microsoft.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее