|
|
|
|
|
by CookiesOnMyDesk
582 days ago
|
|
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 = [];
}
}
}
|
|