我有一个方法,我用不同的参数调用了8次。我使用
AvailableYears.AsParallel()
.Select<Int32,DateUsedByThread>(x => GetDataForYearWorker(x,CIF))
.ToList();GetDataForYearWorker同步地从gets服务获取响应。它在我的asp.net应用程序上使用了很少的计算能力,但通常每个sec服务响应需要3-5秒。因为对are服务的调用是相互独立的,所以我想同时执行所有的调用。但是看起来只有2个线程可以同时运行。为什么会这样?我怎样才能让8个线程同时工作?
发布于 2011-02-21 21:13:28
默认情况下,.AsParallel()会在运行查询的机器上为每个核心启动一个线程。如果您希望改变此行为,请查看WithDegreeOfParallelism。
AvailableYears.AsParallel().WithDegreeOfParallelism(5)
.Select<Int32,DateUsedByThread>(x => GetDataForYearWorker(x,CIF))
.ToList();https://stackoverflow.com/questions/5066314
复制相似问题