加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 03:44:26 所属栏目:百科 来源:网络整理
导读:我有一种方法,我用不同的参数调用8次. 我用 AvailableYears.AsParallel() .SelectInt32,DateUsedByThread(x = GetDataForYearWorker(x,CIF)) .ToList(); GetDataForYearWorker从Webservice同步获取响应.它在我的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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读