在 C# 中并行运行循环需要哪些条件

本文关键字:条件 循环 并行 运行 | 更新日期: 2023-09-27 18:30:31

我有这样一段代码:

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

其中cacheConcurrentDictionaryAdd是扩展方法,它包装TryAdd并在失败时引发异常。

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

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

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

在 C# 中并行运行循环需要哪些条件

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

你应该使用类似的东西:

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