Имитация Async Deadlock 
Параллельность и асинхронность 
Пакетная обработка заявок с асинхронностью (Async) 

OperationCanceledException

Исключения | Exception 

// Когда идет остановка воркера, и нужно обработать OperationCanceledException без ошибки.
try
{
   // action
}
catch(Exception ex)
{
   if (
        ex is OperationCanceledException oce
        && oce.CancellationToken.Equals(cancellationToken)
        )
    {
       //
   }

   // log
}
CancellationTokenSource CreateLinkedTokenSourceWhen to dispose CancellationTokenSource?
https://stackoverflow.com/questions/6960520/when-to-dispose-cancellationtokensource
Task.Yield()
Задать размер стека для потока.

Можно задать через параметр конструктора потока.
Можно использовать для удобного тестирования логики (например рекурсии), которая может вызвать переполнение.

RuntimeHelpers.TryEnsureSufficientExecutionStack Метод
https://learn.microsoft.com/ru-ru/dotnet/api/system.runtime.compilerservices.runtimehelpers.tryensuresufficientexecutionstack?view=netcore-3.0

Why is stack size in C# exactly 1 MB?
https://stackoverflow.com/questions/28656872/why-is-stack-size-in-c-sharp-exactly-1-mb

Теги: