Изменения документа Сценарии

Редактировал(а) Alexandr Fokin 2024/12/11 13:34

<
От версии < 7.15 >
отредактировано Alexandr Fokin
на 2024/04/17 10:42
К версии < 7.7 >
отредактировано Alexandr Fokin
на 2023/01/11 22:17
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Содержимое
... ... @@ -1,29 +1,6 @@
1 1  |(% style="width:399px" %)[[Имитация Async Deadlock>>doc:Разработка.NET.C#.Многопоточность и асинхронность.Сценарии.Имитация асинхронного (Async) Deadlock.WebHome]]|(% style="width:1094px" %)
2 2  |(% style="width:399px" %)[[Параллельность и асинхронность>>doc:.Параллельность и асинхронность.WebHome]]|(% style="width:1094px" %)
3 3  |(% style="width:399px" %)[[Пакетная обработка заявок с асинхронностью (Async)>>doc:.Пакетная обработка заявок с асинхронностью (Async).WebHome]]|(% style="width:1094px" %)
4 -|(% style="width:399px" %)(((
5 -OperationCanceledException
6 -
7 -[[Исключения | Exception >>doc:Разработка.NET.C#.Исключения | Exception .WebHome]]
8 -)))|(% style="width:1094px" %){{code language="c#"}}// Когда идет остановка воркера, и нужно обработать OperationCanceledException без ошибки.
9 -try
10 -{
11 - // action
12 -}
13 -catch(Exception ex)
14 -{
15 - if (
16 - ex is OperationCanceledException oce
17 - && oce.CancellationToken.Equals(cancellationToken)
18 - )
19 - {
20 - //
21 - }
22 -
23 - // log
24 -}{{/code}}
25 -|(% style="width:399px" %)CancellationTokenSource CreateLinkedTokenSource|(% style="width:1094px" %)When to dispose CancellationTokenSource?
26 -[[https:~~/~~/stackoverflow.com/questions/6960520/when-to-dispose-cancellationtokensource>>https://stackoverflow.com/questions/6960520/when-to-dispose-cancellationtokensource]]
27 27  |(% style="width:399px" %){{code language="C#"}}Task.Yield(){{/code}}|(% style="width:1094px" %)(((
28 28  When would I use Task.Yield()?
29 29  [[https:~~/~~/stackoverflow.com/questions/22645024/when-would-i-use-task-yield>>https://stackoverflow.com/questions/22645024/when-would-i-use-task-yield]]
... ... @@ -32,18 +32,9 @@
32 32  [[https:~~/~~/alexyakunin.medium.com/async-recursion-and-some-weirdness-of-design-of-asynchronous-api-in-c-vs-f-a5760a00a26a>>https://alexyakunin.medium.com/async-recursion-and-some-weirdness-of-design-of-asynchronous-api-in-c-vs-f-a5760a00a26a]]
33 33  
34 34  Настройка приостановки и возобновления с помощью Yield и ConfigureAwait
35 -[[https:~~/~~/learn.microsoft.com/ru-ru/dotnet/standard/asynchronous-programming-patterns/consuming-the-task-based-asynchronous-pattern#configuring-suspension-and-resumption-with-yield-and-configureawait>>https://learn.microsoft.com/ru-ru/dotnet/standard/asynchronous-programming-patterns/consuming-the-task-based-asynchronous-pattern#configuring-suspension-and-resumption-with-yield-and-configureawait]]
36 -
37 -Task.Yield() in library needs ConfigureWait(false)
38 -[[https:~~/~~/stackoverflow.com/questions/28309185/task-yield-in-library-needs-configurewaitfalse>>https://stackoverflow.com/questions/28309185/task-yield-in-library-needs-configurewaitfalse]]
12 +[[https:~~/~~/learn.microsoft.com/ru-ru/dotnet/standard/asynchronous-programming-patterns/consuming-the-task-based-asynchronous-pattern#canceling-an-asynchronous-operation>>https://learn.microsoft.com/ru-ru/dotnet/standard/asynchronous-programming-patterns/consuming-the-task-based-asynchronous-pattern#canceling-an-asynchronous-operation]]
39 39  )))
40 -|(% style="width:399px" %)Задать размер стека для потока.|(% style="width:1094px" %)(((
41 -Можно задать через параметр конструктора потока.
14 +|(% style="width:399px" %)Задать размер стека для потока.|(% style="width:1094px" %)Можно задать через параметр конструктора потока.
42 42  Можно использовать для удобного тестирования логики (например рекурсии), которая может вызвать переполнение.
43 43  
44 -RuntimeHelpers.TryEnsureSufficientExecutionStack Метод
45 -[[https:~~/~~/learn.microsoft.com/ru-ru/dotnet/api/system.runtime.compilerservices.runtimehelpers.tryensuresufficientexecutionstack?view=netcore-3.0>>https://learn.microsoft.com/ru-ru/dotnet/api/system.runtime.compilerservices.runtimehelpers.tryensuresufficientexecutionstack?view=netcore-3.0]]
46 -
47 -Why is stack size in C# exactly 1 MB?
48 -[[https:~~/~~/stackoverflow.com/questions/28656872/why-is-stack-size-in-c-sharp-exactly-1-mb>>https://stackoverflow.com/questions/28656872/why-is-stack-size-in-c-sharp-exactly-1-mb]]
49 -)))
17 +