マルチコアアーキテクチャでの同時実行性のために現在最適化しているコードがいくつかあります。私のクラスの1つで、ネストされたforeach
ループを見つけました。基本的に、外側のループはNetworkInterface
オブジェクトの配列を繰り返し処理します。内部ループは、ネットワークインターフェイスのIPアドレスを介して繰り返されます。
それは私に考えさせられました、ネストされたParallel.ForEach
ループを持つことは必然的に良い考えですか?この記事を読んだ後(同じリストにネストされたParallel.ForEachループ?)、効率と並列設計の観点から、どこに何が適用されるのかまだわかりません。この例ではParallel.Foreach
、両方のループがそのリストに対して操作を実行しているリストにステートメントが適用されていることを取り上げています。
私の例では、ループはさまざまなことを行っているので、次のようにする必要があります。
- ネストされたParallel.ForEachループを使用しますか?
- 親ループでParallel.ForEachを使用し、内部ループをそのままにしますか?