【问题标题】:How to increase concurrent parallel tasks with System.Threading.Parallel (.Net 4.0)如何使用 System.Threading.Parallel (.Net 4.0) 增加并发并行任务
【发布时间】:2010-01-01 21:18:12
【问题描述】:

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

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

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

吉拉德。

【问题讨论】:

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


    【解决方案1】:

    引用:

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

    在查询执行大量非计算密集型工作(例如文件 I/O)的情况下,指定并行度大于机器上的内核数可能会有所帮助。

    来自:MSDN

    【讨论】:

      【解决方案2】:

      如果您使用Parallel.ForParallel.ForEach,您可以指定具有MaxDegreesOfParallelism 属性的ParallelOptions 对象。不幸的是,这只是顾名思义的最大限制,并且不提供下限保证。有关与WithDegreeOfParallelism 的关系,请参阅this blog post

      【讨论】:

        【解决方案3】:

        可能不会 - 说得够多了。 Blindy 评论正确

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多