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

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

| Понятие контекста синхронизации.
| Не все типы приложений и фреймворки содержит такой компонент как контекст синхронизации. Его основная цель - реализация механизма определения того, в каком потоке будет продолжаться выполнение кода после выхода из асинхронного ожидания (await).
// (По умолчанию) ConfigureAwait(true) | Сообщает, что необходимо задействовать механизм контекста синхронизации для кода, идущего после выхода из данной асинхронной операции.
ConfigureAwait(false) | Сообщает, что код, идущего после выхода из данной асинхронной операции, может быть выполнен в любом потоке из пула потоков.
| Например: Во многих графических фреймворках менять состояние контролов можно только из UI Thread, если после асинхронной операции нам необходимо изменить контрол, то нужна гарантия того, что код будет выполнен в UI Thead, а не любом Thread из ThreadPool. Потоки и задачи
| При наличия контекста синхронизации, синхронное ожидание асинхронного результата может привести к Deadlock (см. проблемы).
Ссылки | ConfigureAwait FAQ devblogs.microsoft| ConfigureAwait FAQ ConfigureAwait, кто виноват и что делать? https://habr.com/ru/company/clrium/blog/463587/ ConfigureAwait: часто задаваемые вопросы https://habr.com/ru/post/482354/ SynchronizationContext — когда MSDN подводит https://habr.com/ru/post/232169/ IT - записки программиста: Контексты исполнения (ExecutionContext) и синхронизации (SynchronizationContext) - что это такое и с чем их едят ? http://alz-it.blogspot.com/2016/06/executioncontext-synchronizationcontext.html Пишем свой SynchronizationContext https://itnan.ru/post.php?c=1&p=269985

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

###### Дочерние страницы:

###### Обратные ссылки:

- Проблемы
- Асинхронность. Async Await
- Имитация асинхронного (Async) Deadlock
- Сценарии
- Некоторые моменты

Создал(а) Alexandr Fokin 2020/07/16 21:10

- Комментарии (0)
- Вложения (0)
- История
- Информация

## Приложения