GetRequestStream非常慢

时间:2014-10-20 21:15:23

标签: c# .net networking

当运行在多线程环境中生成多个网络请求的C#程序时,我发现Request.GetRequestStream非常慢,有时需要几秒钟,通常是后续GetResponse的两倍。即使Proxy已被设置为null,这是一个“标准”修复。

这是什么原因?

1 个答案:

答案 0 :(得分:1)

事实证明.NET, by default, has a default limit of 2 for simultaneous connections。这当然会严重限制任何执行重要多线程的应用程序,并且延迟将出现在GetRequestStream调用上。

“修复”是将默认限制更改为更合理的:

ServicePointManager.DefaultConnectionLimit = newConnectionLimit;

我在VMWare上运行Windows的摇摇晃晃的Mac似乎处理了20 OK的值,但是应该谨慎对待这个数字,因为较大的数字将允许更多的资源被捆绑而没有增加的性能。