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

Метод WhenAll

Task.WhenAll для Task<T> даёт массив результатов в том же порядке, что и аргументы. Первую готовую ловят через WhenAny, по мере готовности - WhenEach в .NET 9.

Синтаксис

await Task.WhenAll(task1, task2); int[] values = await Task.WhenAll(t1, t2);

Пример

Давайте сложим два готовых результата:

using System; using System.Linq; using System.Threading.Tasks; class Program { static async Task Main() { int[] parts = await Task.WhenAll( Task.FromResult(1), Task.FromResult(2)); int res = parts.Sum(); Console.WriteLine(res); } }

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

3

Пример

Давайте проверим порядок в массиве:

using System; using System.Threading.Tasks; class Program { static async Task Main() { int[] parts = await Task.WhenAll( Task.FromResult(1), Task.FromResult(2)); bool res = parts[0] == 1 && parts[1] == 2; Console.WriteLine(res); } }

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

True

Пример

Давайте дождёмся двух строк:

using System; using System.Threading.Tasks; class Program { static async Task Main() { string[] parts = await Task.WhenAll( Task.FromResult("abcde"), Task.FromResult("12345")); string res = parts[0] + parts[1]; Console.WriteLine(res); } }

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

"abcde12345"

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

  • метод WhenAny,
    первая завершившаяся
  • метод WhenEach,
    перечисление по готовности
  • метод FromResult,
    готовая задача для набора
  • Task,
    класс, где объявлен WhenAll
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить