Да. Parallel.For
не вернется, пока все операции не будут завершены.
Если вы запустите
Parallel.For(0, 5, i => Console.WriteLine("First {0}", i));
Console.WriteLine("First Finished");
Parallel.For(0, 5, i => Console.WriteLine("Second {0}", i));
Console.WriteLine("Second Finished");
Выход
First 0
First 2
First 1
First 4
First 3
First Finished
Second 0
Second 4
Second 3
Second 2
Second 1
Second Finished
Порядок целых чисел будет меняться, но второе всегда будет после первого.