2

私はそのようなコードを持っています:

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

ここで、cacheisConcurrentDictionaryとisは、失敗時Addにラップして例外をスローする拡張メソッドです。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 に答える