Свойство IsCanceled
Task.IsCanceled равен true
после
FromCanceled.
await бросает
TaskCanceledException. Сбой
отличают через
IsFaulted.
Синтаксис
bool canceled = task.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
Пример
Давайте сравнить с успешной задачей:
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var task = Task.FromResult(12345);
await task;
bool res = task.IsCanceled;
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Пример
Давайте проверить, что при отмене
IsCompletedSuccessfully
ложно:
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 && !task.IsCompletedSuccessfully;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
метод
FromCanceled,
создать отменённую задачу -
свойство
Status,
значениеCanceled -
свойство
IsCompleted,
отмена тоже завершение -
Task,
класс, где объявлено свойство