0

ここにいくつかの質問があります:

C#、Parallel.For、または Parallel.ForEach...

別のサイクル内で並列サイクルをコーディングすることは理にかなっていますか?

プログラムが遅くなりますか?生産性はどうですか?

私が本当に興味を持っているのは...最初のループがコードの「軽い」部分を実行している場合、代わりにメイン部分が2番目のループ内にある場合、2番目のループを離れて最初のループを単純なforeachに変換する方がよいでしょうか?

例 =>

Parallel.ForEach(sourse,action=>{
  //to do smt very fast

Parallel.ForEach(sourse2,action2=>{

       //here is main code of program,
      // where there is lot of http requests and etc...
 });

});

ありがとうございました!

4

1 に答える 1

1

いいえ、これを行う意味はありません。スレッドを最も効率的に使用するために、並列処理を可能な限りチェーンの上位で呼び出すように努める必要があります。

Parallel.Forデフォルトでは、使用可能なコアの数に基づいて作業を自動的に分割しようとするためParallel.ForEach、2 つのパーティショナーが使用可能なコアをめぐって争うと、作業が遅くなる可能性が非常に高くなります。

于 2013-06-05T17:14:28.547 に答える