我正在考虑在ASP.NET应用程序中使用一些PLINQ来增加我们所拥有的一些I / O绑定和计算绑定处理的吞吐量(例如,迭代用于Web服务调用的集合并计算一些地理坐标距离)。
我的问题是:我应该担心像Parallel.ForEach
这样的运行操作会使线程远离处理其他请求,还是使用单独的线程池(我听说过I / O完成的事情)端口,但不确定如何参与讨论)?
答案 0 :(得分:1)
Parallel.ForEach
最多只能use one thread for as many cores as you have。线程池默认最大大小为250 times the number of cores you have。所以你必须真正尝试用尽可用的线程。