2

我有这样一段代码:

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

where cacheisConcurrentDictionaryAddis 扩展方法,它TryAdd在失败时包装并抛出异常。

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

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

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

4

1 回答 1

2

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

你应该使用类似的东西:

Parallel.ForEach (coll, elem => 
{
   ... // some *local* computation
   cache.Add(elem,computation_outcome);
} );
于 2012-04-07T08:37:42.430 回答