通过 Fiddler 分析下面的代码,我意识到使用并行扩展我最多可以获得 2 个出站请求:
new string[]
{
"http://stackoverflow.com",
"http://superuser.com",
"http://serverfault.com",
"http://stackexchange.com"
}
.AsParallel()
.Select(a => HttpWebRequest.Create(a).GetResponse())
.ToArray()
;
我应该使用什么方法来最大化出站请求的数量?
最佳答案
默认情况下,PFX 创建的线程数与您的 CPU 核心数相同。这就是为什么你只有两个请求。使用 PFX 中的 Task 类并通过 Task.WaitAll 运行它们。 (我希望我的猜测是正确的。)
编辑:示例
var tasks = servers.Select(Task.Create(() => GetResponseCallHere(...))).ToArray();
Task.WaitAll(tasks);
关于c# - 并行异步调用时如何获取最大出站请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1776667/