Это будет абсолютно зависеть от ситуации, при выполнении операций с потоками и т. Д. Будет много накладных расходов, поэтому что-то вроде:
foreach(char c in alphabet)
{
myStr += c;
}
Не выиграет от распараллеливания (среди прочих вопросов).Где-то вроде:
foreach(File f in myLargeLogFiles)
{
LogFileProcessor p = new LogFileProcess();
p.ProcessLogFile(f);
}
Может очень выиграть от распараллеливания.Все сводится к тому, насколько тяжелой является нагрузка внутри цикла;преимущество от параллелизма больше, чем от накладных расходов на создание потоков, синхронизацию потоков и т. д.