C# параллельное выполнение итераций циклов


#1

у себя в коде я очень часто использую циклы и зачастую при их работе нужно прилично ожидать, поэтому мне пришла идея запустить циклы в другом потоке: что не принесло больших результатов, разве что позволило вовремя ожидания использовать другие инструментарии, но не ускорило работу самого цикла. И тут я подумал о запуске итераций цикла в нескольких потоках (теоретически время работы цикла должно прилично сократится), но я не знаю как лучше это реализовать, ведь количество потоков для выполнения итераций наверняка должно зависеть от количества итераций...


#2

Для этого есть отдельный класс Parallel, он находится в пространстве имён System.Threading.Tasks и у него есть два метода: For и ForEach, которые и реализуют выполнение итераций данных циклов параллельно, поэтому реализовывать свой собственный алгоритм для этого ненужно. Примеры запуска циклов итерации которых выполняются параллельно:

int[] data = new int[20];

Action<int> initialization = (int i) => { data[i] = i; };

Parallel.For(0, data.Length, initialization);

Parallel.ForEach(data, element => Console.WriteLine(element));

#3

спасибо