Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
973 of 1492 menu
◀ ▶

OperationCanceledException

Исключение возникает после отмены через CancellationTokenSource и вызова Cancel(), если код проверяет токен методом ThrowIfCancellationRequested. Наследник - TaskCanceledException - используют для отменённых задач. Сбой перехватывают, чтобы программа не падала.

Синтаксис

using System.Threading; cts.Token.ThrowIfCancellationRequested();

Пример

Давайте отменим и поймаем исключение:

using System; using System.Threading; class Program { static void Main() { using var cts = new CancellationTokenSource(); cts.Cancel(); try { cts.Token.ThrowIfCancellationRequested(); } catch (OperationCanceledException) { Console.WriteLine("fail"); } } }

Результат выполнения кода:

"fail"

Пример

Давайте проверим, что токен уже отменён:

using System; using System.Threading; class Program { static void Main() { using var cts = new CancellationTokenSource(); cts.Cancel(); Console.WriteLine(cts.Token.IsCancellationRequested); } }

Результат выполнения кода:

True

Пример

Давайте не вызовем ThrowIfCancellationRequested до отмены:

using System; using System.Threading; class Program { static void Main() { using var cts = new CancellationTokenSource(); bool res = false; try { cts.Token.ThrowIfCancellationRequested(); res = true; } catch (OperationCanceledException) { res = false; } Console.WriteLine(res); } }

Результат выполнения кода:

True

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить