C#http请求最大并发连接数是40

时间:2019-03-20 08:05:06

标签: c# http web asynchronous async-await

我想为不同的URL创建1000个并发的http客户端连接。 我用过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);

“ URL”列表中有1000个URL。

我从提琴手那里看到,起初它发送40个请求并等待它们。然后,只要收到旧请求响应,就会发送新请求。

我尝试了“ ServicePointManager.DefaultConnectionLimit = 20000;”以及下面的app.config

<system.net>
<connectionManagement>
    <add address="*" maxconnection="100" />
</connectionManagement>
</system.net>

它不会增加40个以上的并发请求。

关于如何实现至少300个并发请求的任何线索。?

0 个答案:

没有答案