Результаты по мере готовности WhenEach в C#
Метод WhenEach отдаёт задачи по мере завершения, каждую уже в готовом состоянии. Результат из неё достают через await.
Так обновляют экран по первому готовому ответу и не ждут, пока закончится вся пачка.
Обе задачи в примере уже завершены, поэтому цикл печатает оба результата. Если бы они заканчивались в разное время, строка появлялась бы сразу по готовности:
Task<int>[] jobs = [Task.FromResult(1), Task.FromResult(2)];
await foreach (Task<int> done in Task.WhenEach(jobs))
{
Console.WriteLine(await done);
}
Запустите две фоновые операции с результатами 3 и 8 и выведите сумму по мере их готовности.