Parallel.ForEachAsync в C#
Метод Parallel.ForEachAsync запускает асинхронное тело для каждого элемента и может выполнять несколько элементов одновременно. Пока один элемент ждёт, обрабатывается другой: поток не блокируется на паузе.
Так удобно пройти пачку операций, которые в основном ждут, а не считают.
В примере обрабатываются числа 1 и 2. Каждое печатается после короткой паузы. Порядок строк не фиксирован:
await Parallel.ForEachAsync(new[] { 1, 2 }, async (n, _) =>
{
await Task.Delay(1);
Console.WriteLine(n);
});
Асинхронно и параллельно обработайте числа 4, 5 и 6. Для каждого сделайте короткую паузу и выведите число в консоль.