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

Ожидание нескольких задач WhenAll в C#

Несколько независимых операций часто запускают параллельно: загрузка конфигурации, проверка лицензии, чтение кэша. Последовательное ожидание складывает задержки, хотя работа могла идти одновременно.

Метод WhenAll возвращает управление только после завершения каждой задачи из набора. Общее время близко к самой медленной операции, а не к сумме всех пауз.

Смоделируем два расчёта в пуле: паузы 120 и 280 мс идут одновременно:

static Task<int> WarehouseUnits() => Task.Run(() => { Thread.Sleep(120); return 40; }); static Task<int> ExchangeRateCents() => Task.Run(() => { Thread.Sleep(280); return 55; }); int[] parts = await Task.WhenAll(WarehouseUnits(), ExchangeRateCents()); Console.WriteLine(parts[0] + parts[1]); // выведет 95

Параллельно посчитайте длины строк "north" и "south" и выведите сумму длин, когда готовы оба результата.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить