【发布时间】:2010-01-01 21:18:12
【问题描述】:
我正在试验新的 System.Threading.Parallel 方法,例如 parallel for 和 foreach。
它们似乎工作得很好,但我需要一种方法来增加执行的并发线程数,即 8 个(我有一个四核)。
我知道有一种方法可以找到你隐藏该死财产的地方。
吉拉德。
【问题讨论】:
标签: c# .net-4.0 multithreading parallel-processing
我正在试验新的 System.Threading.Parallel 方法,例如 parallel for 和 foreach。
它们似乎工作得很好,但我需要一种方法来增加执行的并发线程数,即 8 个(我有一个四核)。
我知道有一种方法可以找到你隐藏该死财产的地方。
吉拉德。
【问题讨论】:
标签: c# .net-4.0 multithreading parallel-processing
引用:
var query = from item in source.AsParallel().WithDegreeOfParallelism(10)
where Compute(item) > 42
select item;
在查询执行大量非计算密集型工作(例如文件 I/O)的情况下,指定并行度大于机器上的内核数可能会有所帮助。
来自:MSDN
【讨论】:
如果您使用Parallel.For 或Parallel.ForEach,您可以指定具有MaxDegreesOfParallelism 属性的ParallelOptions 对象。不幸的是,这只是顾名思义的最大限制,并且不提供下限保证。有关与WithDegreeOfParallelism 的关系,请参阅this blog post。
【讨论】:
可能不会 - 说得够多了。 Blindy 评论正确
【讨论】: