質問1。
Parallel.For と Parallel.ForEach の使用は、順序付けされたタスクまたは順序付けられていないタスクの操作に適していますか?
質問する理由は、StringBuilder を使用してさまざまなパラメーターに基づいて SQL ステートメントを生成するシリアル ループを最近更新したためです。その結果、標準の foreach ループを使用した場合と比較して、SQL が少しごちゃごちゃしていました (構文エラーが含まれる点まで)。したがって、TPL は、データが特定の形式で表示される必要があるタスクの実行には適していないというのが私の直感です。特定の順序。
質問2。
TPL はマルチコア アーキテクチャを自動的に利用しますか? 実行前に何かをプロビジョニングする必要がありますか?
これを尋ねる理由は、TPL 操作のパフォーマンス プロファイリングに関して以前に尋ねた質問に関連しています。アプリケーションが複数のコアにアクセスできない可能性があるため、TPL が標準のシリアル ループよりも常に効率的であるとは限らず、したがって追加のスレッドとループを作成するオーバーヘッドにより、比較してパフォーマンスが低下するという事実を、質問への回答で教えてくれました。標準のシリアルループに。