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

<
От версии < 2.9 >
отредактировано Alexandr Fokin
на 2023/01/11 15:17
К версии < 4.2 >
отредактировано Alexandr Fokin
на 2024/02/24 23:45
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Родительский документ
... ... @@ -1,1 +1,1 @@
1 -Разработка.NET.C#.Многопоточность и асинхронность2.Асинхронность\. Async Await.WebHome
1 +Разработка.NET.C#.Многопоточность и асинхронность.Асинхронность\. Async Await.WebHome
Содержимое
... ... @@ -1,28 +1,14 @@
1 -=== Понятие контекста синхронизации. ===
2 -
3 -Не все типы приложений и фреймворки содержит такой компонент как контекст синхронизации.
1 +| |Понятие контекста синхронизации.
2 +| |Не все типы приложений и фреймворки содержит такой компонент как контекст синхронизации.
4 4  Его основная цель - реализация механизма определения того, в каком потоке будет продолжаться выполнение кода после выхода из асинхронного ожидания (await).
5 -
6 -
7 -| |
4 +| |(((
8 8  |{{code language="c#"}}// (По умолчанию)
9 -ConfigureAwait(true){{/code}}(((
10 -
11 -)))|Сообщает, что необходимо задействовать механизм контекста синхронизации для кода, идущего после выхода из данной асинхронной операции.
6 +ConfigureAwait(true){{/code}}|Сообщает, что необходимо задействовать механизм контекста синхронизации для кода, идущего после выхода из данной асинхронной операции.
12 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 -
8 +)))
9 +| |Например:
10 +Во многих графических фреймворках менять состояние контролов можно только из UI Thread, если после асинхронной операции нам необходимо изменить контрол, то нужна гарантия того, что код будет выполнен в UI Thead, а не любом Thread из ThreadPool. [[Потоки и задачи>>doc:Разработка.NET.C#.Многопоточность и асинхронность.Потоки и задачи.WebHome]]
11 +| |(((
26 26  * ConfigureAwait FAQ
27 27  [[devblogs.microsoft| ConfigureAwait FAQ>>url:https://devblogs.microsoft.com/dotnet/configureawait-faq/?utm_source=csharp&utm_medium=email&utm_campaign=digest]]
28 28  * ConfigureAwait, кто виноват и что делать?
... ... @@ -35,3 +35,31 @@
35 35  http://alz-it.blogspot.com/2016/06/executioncontext-synchronizationcontext.html
36 36  * Пишем свой SynchronizationContext
37 37  https://itnan.ru/post.php?c=1&p=269985
24 +)))
25 +|Ссылки|
26 +
27 +----
28 +
29 +==== Внутренние ссылки: ====
30 +
31 +====== Дочерние страницы: ======
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 +----
50 +
51 +