ファイルをダウンロードしています。これは、コアが 2 つしかない場合でも、2 つ以上のスレッドを作成するとパフォーマンスが向上することを意味します。
Parallel.ForEach()
ParallelOptions.MaxDegreeOfParallelism をより高い値に設定しても、コアの量と同じ数のスレッドのみが作成されますか?
ファイルをダウンロードしています。これは、コアが 2 つしかない場合でも、2 つ以上のスレッドを作成するとパフォーマンスが向上することを意味します。
Parallel.ForEach()
ParallelOptions.MaxDegreeOfParallelism をより高い値に設定しても、コアの量と同じ数のスレッドのみが作成されますか?
ドキュメントから:
MaxDegreeOfParallelismは、このParallelOptionsインスタンスが正の場合、設定値に渡されるParallelメソッド呼び出しによって実行される同時操作の数を制限します。MaxDegreeOfParallelismが-1の場合、同時に実行される操作の数に制限はありません。
この関数はthrowのみArgumentOutOfRangeException
で、タイプMaxDegreeOfParalleism
はintです。つまり、コアの数よりも多くのスレッドを作成できるということです。
多くのxml生成プロセスを実行し、タスクマネージャーが以前に設定したとおりにプロセスの数を表示したため、確認できます。