Исходный код вики Сценарии

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

Скрыть последних авторов
Alexandr Fokin 7.4 1 |(% style="width:399px" %)[[Имитация Async Deadlock>>doc:Разработка.NET.C#.Многопоточность и асинхронность.Сценарии.Имитация асинхронного (Async) Deadlock.WebHome]]|(% style="width:1094px" %)
2 |(% style="width:399px" %)[[Параллельность и асинхронность>>doc:.Параллельность и асинхронность.WebHome]]|(% style="width:1094px" %)
3 |(% style="width:399px" %)[[Пакетная обработка заявок с асинхронностью (Async)>>doc:.Пакетная обработка заявок с асинхронностью (Async).WebHome]]|(% style="width:1094px" %)
Alexandr Fokin 7.16 4 |(% style="width:399px" %)CancellationTokenSource CreateLinkedTokenSource|(% style="width:1094px" %)(((
5 When to dispose CancellationTokenSource?
Alexandr Fokin 7.15 6 [[https:~~/~~/stackoverflow.com/questions/6960520/when-to-dispose-cancellationtokensource>>https://stackoverflow.com/questions/6960520/when-to-dispose-cancellationtokensource]]
Alexandr Fokin 7.16 7
8 {{code language="c#"}}
9 using var cancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(extraToken)
10 {{/code}}
11 )))
Alexandr Fokin 7.5 12 |(% style="width:399px" %){{code language="C#"}}Task.Yield(){{/code}}|(% style="width:1094px" %)(((
Alexandr Fokin 7.4 13 When would I use Task.Yield()?
Alexandr Fokin 7.3 14 [[https:~~/~~/stackoverflow.com/questions/22645024/when-would-i-use-task-yield>>https://stackoverflow.com/questions/22645024/when-would-i-use-task-yield]]
Alexandr Fokin 1.2 15
Alexandr Fokin 7.4 16 Async, recursion, and some weirdness in design of asynchronous API in C#
17 [[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]]
Alexandr Fokin 7.6 18
19 Настройка приостановки и возобновления с помощью Yield и ConfigureAwait
Alexandr Fokin 7.10 20 [[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]]
Alexandr Fokin 7.11 21
22 Task.Yield() in library needs ConfigureWait(false)
23 [[https:~~/~~/stackoverflow.com/questions/28309185/task-yield-in-library-needs-configurewaitfalse>>https://stackoverflow.com/questions/28309185/task-yield-in-library-needs-configurewaitfalse]]
Alexandr Fokin 7.4 24 )))
Alexandr Fokin 7.8 25 |(% style="width:399px" %)Задать размер стека для потока.|(% style="width:1094px" %)(((
26 Можно задать через параметр конструктора потока.
Alexandr Fokin 7.7 27 Можно использовать для удобного тестирования логики (например рекурсии), которая может вызвать переполнение.
Alexandr Fokin 7.4 28
Alexandr Fokin 7.8 29 RuntimeHelpers.TryEnsureSufficientExecutionStack Метод
30 [[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]]
Alexandr Fokin 7.9 31
32 Why is stack size in C# exactly 1 MB?
33 [[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]]
Alexandr Fokin 7.8 34 )))