8 GB メモリを搭載した 8 コア CPU マシンを使用しています。論理的には、次のコードは並列で実行できますが、ループのサイズよりも使用可能なコアがはるかに少ないため、ループは並列処理の機会を十分に提供します。次に、すべてのデリゲート式は、自由変数を保持するためにいくらかのメモリを割り当てます。この場合、parallel for を使用することをお勧めしますか?
また、この場合、2 つの並列 for を 2 つのタスクに分離すると、パフォーマンスが向上しますか??
private static void DoWork()
{
int end1 = 100; // minimum of 100 values;
int end2 = 100; // minimum of 100 values;
Task a = Task.Factory.StartNew(
delegate
{
Parallel.For(0, end1, delegate(int i)
{
// independent work
});
}
);
Task b = Task.Factory.StartNew(
delegate
{
Parallel.For(0, end2, delegate(int i)
{
// independent work
});
}
);
a.Wait();
b.Wait();
}