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