我正在尝试新的System.Threading.Parallel方法,例如parallel for和foreach。
它们似乎工作得很好,但我需要一种方法来增加执行的并发线程数,这些线程为8(我有一个四核)。
我知道有一种方法可以找到你隐藏该死的财产的地方。
吉拉德。
答案 0 :(得分:6)
报价:
var query = from item in source.AsParallel().WithDegreeOfParallelism(10)
where Compute(item) > 42
select item;
如果查询正在执行大量非计算绑定工作(如文件I / O),则指定并行度大于计算机上的核心数可能会有所帮助。
来自:MSDN
答案 1 :(得分:4)
如果您使用Parallel.For
或Parallel.ForEach
,则可以指定具有属性ParallelOptions
的{{1}}对象。不幸的是,顾名思义,这只是一个最大限度,并没有提供下限保证。关于与MaxDegreesOfParallelism
的关系,请参阅this blog post。
答案 2 :(得分:0)
可能不 - 足够说。 Blindy正确评论了