122 現在のプロジェクトではTPLを使用しており、Parallel.Foreachを使用して多くのスレッドをスピンしています。Taskクラスには、タスクが完了するまで待機するWait()が含まれています。そのように、Parallel.ForEachが完了するのを待ってから、次のステートメントを実行する方法を教えてください。 c# task-parallel-library — VJAI ソース
192 特別なことをする必要はありませんParallel.Foreach()。分岐されたタスクがすべて完了するまで待機します。呼び出しスレッドから、それを単一の同期ステートメントとして扱い、たとえば、try / catch内にラップできます。 — ヘンク・ホルターマン ソース 10 「Parallel.Foreach()は、すべての分岐タスクが完了するまで待機します」((内部の非同期タスク)などの状況では混乱する可能性があります:Parallel.ForEach(groupedUnreadMessages、async unreadMsgCollection => {/ * works * /}); — Bo HU 2016 これは、stackoverflowの他の問題です。stackoverflow.com/ questions — Bo HU 4 この回答は、非同期/待機の前の2011年からです。しかし、私が言ったように、ForEach内にスレッドを生成することは良い考えではありません。どちらも非同期アクションではありません。あなたが投稿したリンクは良い情報と解決策を提供します。 — Henk Holterman 1 「ForEach内にスレッドを生成するのは良い考えではありません」展開できますか?それは「あなたが戻る前に待つことを確認しない限り」ですか? — Gianthra
16 Parallel.Foreachでは必要ありません。使用可能なプロセッサと同じ数のスレッドでforeachを実行するだけで、同期的に戻ります。 詳細については、こちらをご覧ください — ルイス・コットマン ソース