現在のプロジェクトでTPLを使用し、Parallel.Foreachを使用して多くのスレッドをスピンしています。 Taskクラスには、タスクが完了するまで待機するWait()が含まれています。そのように、Parallel.ForEachが完了するのを待ってから、次のステートメントを実行する方法はありますか?
特別なことをする必要はありません。Parallel.Foreach()
は、分岐したすべてのタスクが完了するまで待機します。呼び出しスレッドから、それを単一の同期ステートメントとして扱い、たとえばtry/catch内にラップすることができます。
Parallel.Foreachでは必要ありません。使用可能なプロセッサと同じ数のスレッドでforeachを実行するだけですが、同期的に戻ります。
詳細については、こちらをご覧ください こちら