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

<
От версии < 2.1 >
отредактировано Alexandr Fokin
на 2020/07/16 21:10
К версии < 2.4 >
отредактировано Alexandr Fokin
на 2022/07/29 03:38
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Родительский документ
... ... @@ -1,1 +1,1 @@
1 -Разработка.NET.C#.Многопоточность.WebHome
1 +Разработка.NET.C#.Многопоточность.Асинхронность\. Async Await.WebHome
Содержимое
... ... @@ -1,7 +1,33 @@
1 +=== Понятие контекста синхронизации. ===
1 1  
3 +Не все типы приложений и фреймворки содержит такой компонент как контекст синхронизации.
4 +Его основная цель - реализация механизма определения того, в каком потоке будет продолжаться выполнение кода после выхода из асинхронного ожидания (await).
2 2  
3 -Ссылки:
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 +В некоторых случаях при неправильном использовании возможны ситуации, когда есть контекст синхронизации (UI контекст основного ui потока, ASP контекст запроса)
21 +ConfigureAwait - указывает на то, должны ли операции продожаться в том же контексте после завершения await (или же они могут быть выполнены в любом контексте)
22 +[[devblogs.microsoft| ConfigureAwait FAQ>>url:https://devblogs.microsoft.com/dotnet/configureawait-faq/?utm_source=csharp&utm_medium=email&utm_campaign=digest]]
23 +
24 +----
25 +
26 +=== Ссылки: ===
27 +
28 +* SynchronizationContext — когда MSDN подводит
4 4  https://habr.com/ru/post/232169/
30 +* IT - записки программиста: Контексты исполнения (ExecutionContext) и синхронизации (SynchronizationContext) - что это такое и с чем их едят ?
5 5  http://alz-it.blogspot.com/2016/06/executioncontext-synchronizationcontext.html
32 +* Пишем свой SynchronizationContext
6 6  https://itnan.ru/post.php?c=1&p=269985
7 -