【问题标题】:AsParallel() - with more than 2 threads in parallel in asp.netAsParallel() - 在 asp.net 中有超过 2 个并行线程
【发布时间】:2011-02-21 13:06:58
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# asp.net multithreading parallel-processing


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多