AsParallel() - 在asp.net中并行使用2个以上的线程

Rya*_*yan 10 c# asp.net parallel-processing multithreading

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

 AvailableYears.AsParallel()
             .Select<Int32,DateUsedByThread>(x => GetDataForYearWorker(x,CIF))
             .ToList();
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*man 25

默认情况下,.AsParallel()将在运行查询的计算机上为每个核心启动一个线程.如果您想改变这种行为,请查看WithDegreeOfParallelism.

AvailableYears.AsParallel().WithDegreeOfParallelism(5)
             .Select<Int32,DateUsedByThread>(x => GetDataForYearWorker(x,CIF))
             .ToList();
Run Code Online (Sandbox Code Playgroud)