【问题标题】:What conditions are required for running loop in parallel in C#?在 C# 中并行运行循环需要什么条件?
【发布时间】:2012-04-07 08:01:33
【问题描述】:

我有这样一段代码:

foreach (var elem in coll.AsParallel())
{
   ... // some *local* computation
   cache.Add(elem,computation_outcome);
}

其中cacheConcurrentDictionaryAdd 是包装TryAdd 并在失败时抛出异常的扩展方法。

它有效。唯一的问题是,它不能并行运行。

问题 -- 并行运行循环的要求是什么?

我知道强制并行模式,但我只是询问并行执行的要求。

【问题讨论】:

    标签: c# linq loops parallel-processing requirements


    【解决方案1】:

    AsParallel() 用于 LINQ 查询。它不会使正常的foreach() 并行运行。

    你应该使用类似的东西:

    Parallel.ForEach (coll, elem => 
    {
       ... // some *local* computation
       cache.Add(elem,computation_outcome);
    } );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 2014-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多