Изменения документа Сценарии
Редактировал(а) Alexandr Fokin 2024/12/11 13:34
<
отредактировано Alexandr Fokin
на 2023/01/11 22:55
на 2023/01/11 22:55
отредактировано Alexandr Fokin
на 2024/12/11 13:34
на 2024/12/11 13:34
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,6 +1,14 @@ 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" %)CancellationTokenSource CreateLinkedTokenSource|(% style="width:1094px" %)((( 5 +When to dispose CancellationTokenSource? 6 +[[https:~~/~~/stackoverflow.com/questions/6960520/when-to-dispose-cancellationtokensource>>https://stackoverflow.com/questions/6960520/when-to-dispose-cancellationtokensource]] 7 + 8 +{{code language="c#"}} 9 +using var cancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(extraToken) 10 +{{/code}} 11 +))) 4 4 |(% style="width:399px" %){{code language="C#"}}Task.Yield(){{/code}}|(% style="width:1094px" %)((( 5 5 When would I use Task.Yield()? 6 6 [[https:~~/~~/stackoverflow.com/questions/22645024/when-would-i-use-task-yield>>https://stackoverflow.com/questions/22645024/when-would-i-use-task-yield]] ... ... @@ -9,7 +9,10 @@ 9 9 [[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]] 10 10 11 11 Настройка приостановки и возобновления с помощью Yield и ConfigureAwait 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]] 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]] 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]] 13 13 ))) 14 14 |(% style="width:399px" %)Задать размер стека для потока.|(% style="width:1094px" %)((( 15 15 Можно задать через параметр конструктора потока. ... ... @@ -17,6 +17,7 @@ 17 17 18 18 RuntimeHelpers.TryEnsureSufficientExecutionStack Метод 19 19 [[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]] 20 -))) 21 21 22 - 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]] 34 +)))