我有一个方法,我用不同的参数调用了8次。
我用

 AvailableYears.AsParallel()
             .Select<Int32,DateUsedByThread>(x => GetDataForYearWorker(x,CIF))
             .ToList();

GetDataForYearWorker同步地从Web服务获取响应。它在asp.net应用程序上使用的计算能力很小,但是每个Web服务响应通常需要3-5秒。由于对Web服务的调用彼此独立,因此我想同时进行所有操作。但是看起来只有2个线程可以同时运行。为什么会这样,我如何才能同时工作8个线程?

最佳答案

默认情况下,.AsParallel()将在运行查询的计算机上每个内核启动一个线程。如果要更改此行为,请查看WithDegreeOfParallelism

AvailableYears.AsParallel().WithDegreeOfParallelism(5)
             .Select<Int32,DateUsedByThread>(x => GetDataForYearWorker(x,CIF))
             .ToList();

关于c# - AsParallel()-在asp.net中具有两个以上并行线程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5066314/

10-11 01:52