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

Последние авторы
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
20 В некоторых случаях при неправильном использовании возможны ситуации, которая приводит к взаимной блокировке потока и зависанию приложения.
21
22 ----
23
24 === Ссылки: ===
25
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]]
28 * ConfigureAwait, кто виноват и что делать?
29 [[https:~~/~~/habr.com/ru/company/clrium/blog/463587/>>url:https://habr.com/ru/company/clrium/blog/463587/]]
30 * ConfigureAwait: часто задаваемые вопросы
31 [[https:~~/~~/habr.com/ru/post/482354/>>url:https://habr.com/ru/post/482354/]]
32 * SynchronizationContext — когда MSDN подводит
33 https://habr.com/ru/post/232169/
34 * IT - записки программиста: Контексты исполнения (ExecutionContext) и синхронизации (SynchronizationContext) - что это такое и с чем их едят ?
35 http://alz-it.blogspot.com/2016/06/executioncontext-synchronizationcontext.html
36 * Пишем свой SynchronizationContext
37 https://itnan.ru/post.php?c=1&p=269985