【问题标题】:Is there an equivalent to 'continue' in a Parallel.ForEach?Parallel.ForEach 中是否有“继续”的等价物?
【发布时间】:2011-04-15 11:15:02
【问题描述】:

我正在将一些代码移植到Parallel.ForEach,并在代码中出现continue 错误。我可以在Parallel.ForEach 中使用在功能上等同于foreach 循环中的continue 的东西吗?

Parallel.ForEach(items, parallelOptions, item =>
{
    if (!isTrue)
        continue;
});

【问题讨论】:

    标签: c# foreach parallel-processing


    【解决方案1】:
    return;
    

    (主体只是为每个项目调用的函数)

    【讨论】:

      【解决方案2】:

      当您将循环转换为 Parallel.Foreach 逻辑的兼容定义时,您最终将语句主体设为 lambda。嗯,这是一个被 Parallel 函数调用的动作。

      因此,将continue 替换为return,并用Stop()Break() 语句中断。

      【讨论】:

      • ParallelLoopState 的 Stop() 和 Break() 可能比用 return 语句替换 break 更好。 blogs.msdn.com/b/pfxteam/archive/2009/05/27/9645023.aspx
      • @JasonCoder 这些都不等同于continue
      • @将正确,这就是我说休息的原因。 return 语句确实替换了 continue 语句
      • @JasonCoder - 啊。我误解了你的意思,哎呀。
      猜你喜欢
      • 1970-01-01
      • 2011-07-29
      • 2013-06-21
      • 2014-01-09
      • 2012-02-18
      • 2014-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多