Я думаю, что важно различать, что этот цикл не может быть разделен для параллелизма, потому что, как было упомянуто выше, каждая итерация цикла зависит от предыдущего. Параллель for предназначена для явно параллельных задач, таких как масштабирование пикселей и т. Д., Поскольку каждая итерация цикла не может иметь зависимости данных вне своей итерации.
Parallel.For(0, input.length, x =>
{
output[x] = input[x] * scalingFactor;
});
Приведенный выше пример кода, который позволяет легко разделить для параллелизма. Тем не менее, предупреждающее слово: параллелизм обходится дорого, даже цикл, который я использовал в качестве примера выше, слишком прост, чтобы возиться с параллелью, потому что время установки занимает больше времени, чем время, сэкономленное благодаря параллелизму.