私は、並列処理を使用して800個ほどのレポートを作成するレポート作成クラスを用意しています。Parallel.ForEachの動作を変更しましたか?
それは次のコードで罰金働いていた昨日まで:
Parallel.ForEach(reports, report => { this.Build(report); });
注:デバッグの目的のために、私はテストプロジェクトで書かれたテストからコードをexceutingよ。
昨日、失敗し始めました。リソースモニタを掘り下げていくと、qtagent32.exe(テストランナー)に関連するスレッド数が増えていて、最終的にプロセスが失敗することが判明しました。突然何かがブロックされたように見えました。
私は私のコードを少し変更して問題を解決することができました:
Parallel.ForEach(reports, new ParallelOptions { MaxDegreeOfParallelism = 4 }, report => { this.Build(report); });
しかし、私はまだ変更か疑問に思うままにしていますか?
同じマシンですか?別のマシンですか? –
同じマシン、同じコード... –