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

Метод Delay

Task.Delay удобен для паузы без блокировки потока. TimeSpan.Zero завершается сразу - в примерах не меряют миллисекунды. Запуск кода в пуле - Run. Есть DelayAsync как синоним ожидания.

Синтаксис

await Task.Delay(TimeSpan.Zero); await Task.Delay(millisecondsDelay);

Пример

Давайте дождёмся нулевой задержки и напечатаем строку:

using System; using System.Threading.Tasks; class Program { static async Task Main() { await Task.Delay(TimeSpan.Zero); Console.WriteLine("abcde"); } }

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

"abcde"

Пример

Давайте проверим, что задача после Delay завершена:

using System; using System.Threading.Tasks; class Program { static async Task Main() { var task = Task.Delay(TimeSpan.Zero); await task; bool res = task.IsCompletedSuccessfully; Console.WriteLine(res); } }

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

True

Пример

Давайте выполним код после двух нулевых пауз подряд:

using System; using System.Threading.Tasks; class Program { static async Task Main() { await Task.Delay(TimeSpan.Zero); await Task.Delay(TimeSpan.Zero); Console.WriteLine("12345"); } }

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

"12345"

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

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