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

Класс Task

Task - обещание завершения работы. await снимает результат и пробрасывает исключение напрямую. Result и Wait оборачивают сбой в AggregateException. Запуск в пуле - Run, готовая задача - CompletedTask.

Синтаксис

using System.Threading.Tasks; Task work = Task.Run(() => { }); int value = await Task.FromResult(12345);

Пример

Давайте дождёмся готовой задачи через await:

using System; using System.Threading.Tasks; class Program { static async Task Main() { int res = await Task.FromResult(12345); Console.WriteLine(res); } }

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

12345

Пример

Давайте запустим вычисление через Run:

using System; using System.Threading.Tasks; class Program { static async Task Main() { int res = await Task.Run(() => 12345); Console.WriteLine(res); } }

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

12345

Пример

Давайте проверим уже завершённую CompletedTask:

using System; using System.Threading.Tasks; class Program { static async Task Main() { await Task.CompletedTask; bool res = Task.CompletedTask.IsCompletedSuccessfully; Console.WriteLine(res); } }

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

True

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

  • метод WhenAll,
    ждать несколько задач
  • метод FromResult,
    задача с готовым значением
  • свойство Status,
    этап выполнения
  • async-лямбда,
    функция, возвращающая задачу
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить