Parallel.ForEachの最初のループ内でいくつかのコードを実行したいと思います。最初のループの中でのみ。その理由は、ループ内のコードによって生成された診断データをディスクに書き込むためです。最初のループの後、データはメモリに保存され、後で集約されます。 これは動作しますか?私のコメントで述べたように Parallel.ForEachの最初のループ
bool firstLoop = true;
Parallel.ForEach(someList,
p=>
{
// do something here
if (firstLoop)
{
firstLoop = false;
// do something here for the first loop
}
});
リストの最初の項目または実行された最初のループで発生する必要がありますか?残りの反復は、最初のループで行われていることに依存していますか? – Marc
いいえ、これは動作することはまったく保証されていません。 '' //ここで何かをする」のレイテンシは、(Parallel.ForEachのために)異なるスレッドによって異なるポイントでfirstLoopを調べることができ、複数回更新することができます。 –
'someList.Skip(1)'と並行する前に 'someList.First()'の上に特別なコードを直接記述したいと思っています。シンプルにしておき、厄介な同期の問題を解消してください。 – spender