c# – AsParallel() – 在asp.net中并行有两个以上的线程

前端之家收集整理的这篇文章主要介绍了c# – AsParallel() – 在asp.net中并行有两个以上的线程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一种方法,我用不同的参数调用8次.
我用
AvailableYears.AsParallel()
             .Select<Int32,DateUsedByThread>(x => GetDataForYearWorker(x,CIF))
             .ToList();

GetDataForYearWorker从Webservice同步获取响应.它在我的asp.net应用程序上使用非常少的计算能力,但是对于每个webservice响应来说,它的使用时间需要3-5秒.因为对webservice的调用是独立于彼此的,所以我想同时做所有的.但是看起来只有2个线程可以同时运行.为什么会这样,怎么能同时有8个线程工作?

解决方法

默认情况下.AsParallel()将在运行查询的计算机上为每个核心启动一个线程.如果你想改变这个行为看看 WithDegreeOfParallelism.
AvailableYears.AsParallel().WithDegreeOfParallelism(5)
             .Select<Int32,CIF))
             .ToList();

猜你在找的C#相关文章