Версия 2.9 от Alexandr Fokin на 2023/01/11 15:17

Скрыть последних авторов
Alexandr Fokin 2.4 1 === Понятие контекста синхронизации. ===
2
3 Не все типы приложений и фреймворки содержит такой компонент как контекст синхронизации.
4 Его основная цель - реализация механизма определения того, в каком потоке будет продолжаться выполнение кода после выхода из асинхронного ожидания (await).
5
6
7 | |
8 |{{code language="c#"}}// (По умолчанию)
9 ConfigureAwait(true){{/code}}(((
10
11 )))|Сообщает, что необходимо задействовать механизм контекста синхронизации для кода, идущего после выхода из данной асинхронной операции.
12 |{{code language="c#"}}ConfigureAwait(false){{/code}}|Сообщает, что код, идущего после выхода из данной асинхронной операции, может быть выполнен в любом потоке из пула потоков.
13
14 Например во многих графических фремворках менять состояние контролов можно только из UI Thread, если после асинхронной операции нам необходимо изменить контрол, то нужна гарантия того, что код будет выполнен в UI Thead, а не любом Thread из ThreadPool. [[Потоки и задачи>>doc:Разработка.NET.C#.Многопоточность.Потоки и задачи.WebHome]]
15
16 ----
17
18 === DeadLock при async await. ===
19
Alexandr Fokin 2.8 20 В некоторых случаях при неправильном использовании возможны ситуации, которая приводит к взаимной блокировке потока и зависанию приложения.
Alexandr Fokin 2.4 21
22 ----
23
Alexandr Fokin 2.3 24 === Ссылки: ===
Alexandr Fokin 1.1 25
Alexandr Fokin 2.5 26 * ConfigureAwait FAQ
27 [[devblogs.microsoft| ConfigureAwait FAQ>>url:https://devblogs.microsoft.com/dotnet/configureawait-faq/?utm_source=csharp&utm_medium=email&utm_campaign=digest]]
Alexandr Fokin 2.6 28 * ConfigureAwait, кто виноват и что делать?
29 [[https:~~/~~/habr.com/ru/company/clrium/blog/463587/>>url:https://habr.com/ru/company/clrium/blog/463587/]]
Alexandr Fokin 2.7 30 * ConfigureAwait: часто задаваемые вопросы
Alexandr Fokin 2.6 31 [[https:~~/~~/habr.com/ru/post/482354/>>url:https://habr.com/ru/post/482354/]]
Alexandr Fokin 2.4 32 * SynchronizationContext — когда MSDN подводит
Alexandr Fokin 2.3 33 https://habr.com/ru/post/232169/
Alexandr Fokin 2.4 34 * IT - записки программиста: Контексты исполнения (ExecutionContext) и синхронизации (SynchronizationContext) - что это такое и с чем их едят ?
Alexandr Fokin 2.1 35 http://alz-it.blogspot.com/2016/06/executioncontext-synchronizationcontext.html
Alexandr Fokin 2.4 36 * Пишем свой SynchronizationContext
Alexandr Fokin 1.1 37 https://itnan.ru/post.php?c=1&p=269985