Parallel.For, чтобы не использовать мой основной поток
В моем приложении я хочу, чтобы мой основной поток больше не использовался. Я должен сделать некоторую параллельную обработку, которую я хотел бы сделать различными потоками. Для этого я использую Parallel.For следующим образом
static void SomeMethod()
{
Console.WriteLine(string.Format("Main Thread ID before parallel loop ->>>>>>> {0} ", System.Threading.Thread.CurrentThread.ManagedThreadId));
Parallel.For(0, 10, i =>
{
Console.WriteLine(string.Format("Output ->>>>>>> {0} ", System.Threading.Thread.CurrentThread.ManagedThreadId));
});
Thread.Sleep(100);
Console.WriteLine(string.Format("Main Thread ID after parallel loop ->>>>>>> {0} ", System.Threading.Thread.CurrentThread.ManagedThreadId));
}
Как видно из вывода, основной поток использует ThreadID 1, а некоторые потоки из Parallel.For также используют тот же поток.
Main Thread ID before parallel loop ->>>>>>> 1
Output ->>>>>>> 1
Output ->>>>>>> 1
Output ->>>>>>> 3
Output ->>>>>>> 4
Output ->>>>>>> 4
Output ->>>>>>> 4
Output ->>>>>>> 4
Output ->>>>>>> 5
Output ->>>>>>> 3
Output ->>>>>>> 1
Main Thread ID after parallel loop ->>>>>>> 1
Есть ли способ убедиться, что что-нибудь в Parallel.For всегда запускается в отдельном потоке, чтобы основной поток всегда был свободен.