在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);
} );