Я хотел бы создать 1000 одновременных подключений http-клиентов к различным URL-адресам.Я использовал async / await и waitall.
ниже мой код
static async Task<String> AsyncSend(String url)
{
HttpClient httpClient = new HttpClient();
var request = await httpClient.GetAsync(url);
var responseStr = await request.Content.ReadAsStringAsync();
return responseStr;
}
List<Task> x = new List<Task>();
foreach (var url in URLs)
{
x.Add(AsyncSend(url));
}
await Task.WhenAll(x);
У меня есть 1000 URL-адресов в списке 'URL-адресов'.
Я вижу из фиддлера, что сначала он отправляет 40 запросов и ждет их.Затем новые запросы отправляются каждый раз при получении ответа на старый запрос.
Я пытался 'ServicePointManager.DefaultConnectionLimit = 20000;'а также с app.config с ниже
<system.net>
<connectionManagement>
<add address="*" maxconnection="100" />
</connectionManagement>
</system.net>
И он не увеличивает более 40 одновременных запросов.
Любая подсказка о том, как выполнить как минимум 300 одновременных запросов.?