我有一个方法,我用不同的参数调用了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/