在C#中并行运行循环需要什么条件?

在C#中并行运行循环需要什么条件?,c#,linq,loops,parallel-processing,requirements,C#,Linq,Loops,Parallel Processing,Requirements,我有这样一段代码: foreach (var elem in coll.AsParallel()) { ... // some *local* computation cache.Add(elem,computation_outcome); } 其中,cache是concurrentdirectionary,Add是一种扩展方法,它包装TryAdd,并在失败时抛出异常 它起作用了。唯一的问题是,它不是并行运行的 问题并行运行循环的要求是什么 我知道强制并行模式,但我只是问一下并行执

我有这样一段代码:

foreach (var elem in coll.AsParallel())
{
   ... // some *local* computation
   cache.Add(elem,computation_outcome);
}
其中,
cache
concurrentdirectionary
Add
是一种扩展方法,它包装
TryAdd
,并在失败时抛出异常

它起作用了。唯一的问题是,它不是并行运行的

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

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

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

您应该使用以下内容:

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