如何使用System.Threading.Parallel(.Net 4.0)增加并发并行任务

时间:2010-01-01 21:18:12

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

我正在尝试新的System.Threading.Parallel方法,例如parallel for和foreach。

它们似乎工作得很好,但我需要一种方法来增加执行的并发线程数,这些线程为8(我有一个四核)。

我知道有一种方法可以找到你隐藏该死的财产的地方。

吉拉德。

3 个答案:

答案 0 :(得分:6)

报价:

var query = from item in source.AsParallel().WithDegreeOfParallelism(10)
        where Compute(item) > 42
        select item;

如果查询正在执行大量非计算绑定工作(如文件I / O),则指定并行度大于计算机上的核心数可能会有所帮助。

来自:MSDN

答案 1 :(得分:4)

如果您使用Parallel.ForParallel.ForEach,则可以指定具有属性ParallelOptions的{​​{1}}对象。不幸的是,顾名思义,这只是一个最大限度,并没有提供下限保证。关于与MaxDegreesOfParallelism的关系,请参阅this blog post

答案 2 :(得分:0)

可能不 - 足够说。 Blindy正确评论了