В .NET 9 Preview 5 появилась новый API
Task.WhenEach, который позволяет легко обрабатывать асинхронные задачи по мере их завершения.Пример ниже выполняет несколько вызовов
HttpClient и обрабатывает их результаты по мере завершения:using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
HttpClient client = new HttpClient();
Task<string>[] tasks = new Task<string>[]
{
client.GetStringAsync("https://example.com/1"),
client.GetStringAsync("https://example.com/2"),
client.GetStringAsync("https://example.com/3")
};
await Task.WhenEach(tasks, async task =>
{
string result = await task;
Console.WriteLine(result);
});
}
}