以下の並列 for ループで、いくつのスレッドが作成され、どのインデックス境界で作成されるかを判断する信頼できる方法はありますか?
Parallel.For
(
0,
int.MaxValue,
new ParallelOptions() {MaxDegreeOfParallelism=Environment.ProcessorCount},
(i) =>
{
// Monitor [i] to see how the range is segmented.
}
);
ターゲット マシンのプロセッサ カウントが 4 で、4 つのプロセッサすべてを使用する場合、4 つのセグメントがほぼ同じサイズで作成され、それぞれが約 int.MaxValue/4 であることがわかります。ただし、これは単なる観察であり、Parallel.For は確定的なセグメンテーションを提供する場合と提供しない場合があります。
周りを検索してもあまり役に立ちませんでした。これを予測または計算することは可能ですか?