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

Метод FromCanceled

Task.FromCanceled принимает CancellationToken, который уже запросил отмену. IsCanceled будет true. await бросает TaskCanceledException. Сбой - FromException.

Синтаксис

Task task = Task.FromCanceled(token); Task<T> task = Task.FromCanceled<T>(token);

Пример

Давайте проверим IsCanceled:

using System; using System.Threading; using System.Threading.Tasks; class Program { static async Task Main() { var task = Task.FromCanceled( new CancellationToken(true)); await Task.Yield(); bool res = task.IsCanceled; Console.WriteLine(res); } }

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

True

Пример

Давайте поймаем TaskCanceledException при await:

using System; using System.Threading; using System.Threading.Tasks; class Program { static async Task Main() { try { await Task.FromCanceled( new CancellationToken(true)); } catch (TaskCanceledException) { Console.WriteLine("fail"); } } }

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

"fail"

Пример

Давайте сравнить с успешной задачей:

using System; using System.Threading; using System.Threading.Tasks; class Program { static async Task Main() { var canceled = Task.FromCanceled( new CancellationToken(true)); var ok = Task.FromResult(12345); await Task.Yield(); bool res = canceled.IsCanceled && !ok.IsCanceled; Console.WriteLine(res); } }

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

True

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

  • метод FromException,
    задача со сбоем
  • свойство IsCompletedSuccessfully,
    ложь при отмене
  • свойство Status,
    состояние Canceled
  • Task,
    класс, где объявлен метод
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить