У меня есть асинхронная задача с этим внутри:
while (!cancellationToken.IsCancellationRequested)
{
Console.Write("Enter workload : ");
if (!int.TryParse(Console.ReadLine(), out var workTime)) continue;
Console.Write("Enter the duration of a GC collection (in ms) : ");
if (!int.TryParse(Console.ReadLine(), out var gctime)) continue;
Console.Write("Enter the number of requests between 2 GCs : ");
if (!int.TryParse(Console.ReadLine(), out var gcinter)) continue;
*do irrelevant stuff here*
}
В настоящее время проверка выхода из цикла, если запрашивается отмена, происходит только в начале цикла. Таким образом, если отмена запрошена, а пользователь еще не ввел рабочую нагрузку, он сможет продолжить выполнение шагов метода. Я не хочу этого.
Есть ли элегантный способ (т.е. не проверять токен отмены между каждой строкой метода), чтобы просто отменить задачу всякий раз, когда это требуется, даже если пользователь что-то пишет или просто независимо от того, что происходит в методе?
Заранее спасибо :)