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