Изменения документа SynchronizationContext | Контекст синхронизации
Редактировал(а) Alexandr Fokin 2024/02/24 23:46
<
>
отредактировано Alexandr Fokin
на 2024/02/24 23:45
на 2024/02/24 23:45
отредактировано Alexandr Fokin
на 2022/07/29 03:38
на 2022/07/29 03:38
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (2 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Родительский документ
-
... ... @@ -1,1 +1,1 @@ 1 -Разработка.NET.C#.Многопоточность и асинхронность.Асинхронность\. Async Await.WebHome1 +Разработка.NET.C#.Многопоточность.Асинхронность\. Async Await.WebHome - Содержимое
-
... ... @@ -1,51 +1,33 @@ 1 -| |Понятие контекста синхронизации. 2 -| |Не все типы приложений и фреймворки содержит такой компонент как контекст синхронизации. 1 +=== Понятие контекста синхронизации. === 2 + 3 +Не все типы приложений и фреймворки содержит такой компонент как контекст синхронизации. 3 3 Его основная цель - реализация механизма определения того, в каком потоке будет продолжаться выполнение кода после выхода из асинхронного ожидания (await). 4 -| |((( 5 + 6 + 7 +| | 5 5 |{{code language="c#"}}// (По умолчанию) 6 -ConfigureAwait(true){{/code}}|Сообщает, что необходимо задействовать механизм контекста синхронизации для кода, идущего после выхода из данной асинхронной операции. 9 +ConfigureAwait(true){{/code}}((( 10 + 11 +)))|Сообщает, что необходимо задействовать механизм контекста синхронизации для кода, идущего после выхода из данной асинхронной операции. 7 7 |{{code language="c#"}}ConfigureAwait(false){{/code}}|Сообщает, что код, идущего после выхода из данной асинхронной операции, может быть выполнен в любом потоке из пула потоков. 8 -))) 9 -| |Например: 10 -Во многих графических фреймворках менять состояние контролов можно только из UI Thread, если после асинхронной операции нам необходимо изменить контрол, то нужна гарантия того, что код будет выполнен в UI Thead, а не любом Thread из ThreadPool. [[Потоки и задачи>>doc:Разработка.NET.C#.Многопоточность и асинхронность.Потоки и задачи.WebHome]] 11 -| |((( 12 -* ConfigureAwait FAQ 13 -[[devblogs.microsoft| ConfigureAwait FAQ>>url:https://devblogs.microsoft.com/dotnet/configureawait-faq/?utm_source=csharp&utm_medium=email&utm_campaign=digest]] 14 -* ConfigureAwait, кто виноват и что делать? 15 -[[https:~~/~~/habr.com/ru/company/clrium/blog/463587/>>url:https://habr.com/ru/company/clrium/blog/463587/]] 16 -* ConfigureAwait: часто задаваемые вопросы 17 -[[https:~~/~~/habr.com/ru/post/482354/>>url:https://habr.com/ru/post/482354/]] 18 -* SynchronizationContext — когда MSDN подводит 19 -https://habr.com/ru/post/232169/ 20 -* IT - записки программиста: Контексты исполнения (ExecutionContext) и синхронизации (SynchronizationContext) - что это такое и с чем их едят ? 21 -http://alz-it.blogspot.com/2016/06/executioncontext-synchronizationcontext.html 22 -* Пишем свой SynchronizationContext 23 -https://itnan.ru/post.php?c=1&p=269985 24 -))) 25 -|Ссылки| 26 26 14 +Например во многих графических фремворках менять состояние контролов можно только из UI Thread, если после асинхронной операции нам необходимо изменить контрол, то нужна гарантия того, что код будет выполнен в UI Thead, а не любом Thread из ThreadPool. [[Потоки и задачи>>doc:Разработка.NET.C#.Многопоточность.Потоки и задачи.WebHome]] 15 + 27 27 ---- 28 28 29 -=== =Внутренниессылки:====18 +=== DeadLock при async await. === 30 30 31 -====== Дочерние страницы: ====== 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]] 32 32 33 -{{children/}} 34 - 35 -====== Обратные ссылки: ====== 36 - 37 -{{velocity}} 38 -#set ($links = $doc.getBacklinks()) 39 -#if ($links.size() > 0) 40 - #foreach ($docname in $links) 41 - #set ($rdoc = $xwiki.getDocument($docname).getTranslatedDocument()) 42 - * [[$escapetool.xml($rdoc.fullName)]] 43 - #end 44 -#else 45 - No back links for this page! 46 -#end 47 -{{/velocity}} 48 - 49 49 ---- 50 50 51 - 26 +=== Ссылки: === 27 + 28 +* SynchronizationContext — когда MSDN подводит 29 +https://habr.com/ru/post/232169/ 30 +* IT - записки программиста: Контексты исполнения (ExecutionContext) и синхронизации (SynchronizationContext) - что это такое и с чем их едят ? 31 +http://alz-it.blogspot.com/2016/06/executioncontext-synchronizationcontext.html 32 +* Пишем свой SynchronizationContext 33 +https://itnan.ru/post.php?c=1&p=269985