微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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();

原文地址:https://www.jb51.cc/csharp/93873.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐