SynchronizationContext | Контекст синхронизации

Редактировал(а) Alexandr Fokin 2024/02/24 23:46

 Понятие контекста синхронизации.
 Не все типы приложений и фреймворки содержит такой компонент как контекст синхронизации.
Его основная цель - реализация механизма определения того, в каком потоке будет продолжаться выполнение кода после выхода из асинхронного ожидания (await).
 
// (По умолчанию)
ConfigureAwait(true)
Сообщает, что необходимо задействовать механизм контекста синхронизации для кода, идущего после выхода из данной асинхронной операции.
ConfigureAwait(false)Сообщает, что код, идущего после выхода из данной асинхронной операции, может быть выполнен в любом потоке из пула потоков.
 Например:
Во многих графических фреймворках менять состояние контролов можно только из UI Thread, если после асинхронной операции нам необходимо изменить контрол, то нужна гарантия того, что код будет выполнен в UI Thead, а не любом Thread из ThreadPool. Потоки и задачи 
 При наличия контекста синхронизации, синхронное ожидание асинхронного результата может привести к Deadlock (см. проблемы).
Ссылки
  

Внутренние ссылки:

Дочерние страницы:
Обратные ссылки:

 

Теги: