Я только что сделал пример многопоточности, используя эту ссылку, например ниже:
Console.WriteLine("Number of Threads: {0}", System.Diagnostics.Process.GetCurrentProcess().Threads.Count);
int count = 0;
Parallel.For(0, 50000, options,(i, state) =>
{
count++;
});
Console.WriteLine("Number of Threads: {0}", System.Diagnostics.Process.GetCurrentProcess().Threads.Count);
Console.ReadKey();
Это дает мне 15 потоков до Parellel.For и после этого дает мне только 17 потоков. Таким образом, только 2 потока заняты Parelnel.For.
Затем я создал еще один пример кода, используя эту ссылку, как показано ниже:
var options = new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount * 10 };
Console.WriteLine("MaxDegreeOfParallelism : {0}", Environment.ProcessorCount * 10);
Console.WriteLine("Number of Threads: {0}", System.Diagnostics.Process.GetCurrentProcess().Threads.Count);
int count = 0;
Parallel.For(0, 50000, options,(i, state) =>
{
count++;
});
Console.WriteLine("Number of Threads: {0}", System.Diagnostics.Process.GetCurrentProcess().Threads.Count);
Console.ReadKey();
В приведенном выше коде я установил MaxDegreeOfParallelism, где он устанавливает 40, но по-прежнему использует те же потоки для Parallel.For
.
Итак, как я могу увеличить текущий поток для Parallel.For
?