Comment Comment by CookiesOnMyDesk Something like this, depending on how you want your input and output to be supplied. public async IAsyncEnumerable<HttpResponseMessage> SendTwelveRequestsAtATimeAsync(IAsyncEnumerable<HttpRequestMessage> requests) { HttpClient client = new(); List<HttpRequestMessage> requestsBatch = []; await foreach (var req in requests) { if (requestsBatch.Count < 12) { requestsBatch.Add(req); } else { foreach (var res in await Task.WhenAll(requestsBatch.Select(client.SendAsync))) { yield return res; } requestsBatch = []; } } } parent CookiesOnMyDesk 1 year ago