Я хочу преобразовать цикл for, который увеличивает итератор на 2 при каждом проходе, в цикл Parallel For с использованием TPL. Данные никоим образом не зависят от порядка или ограничений, но я хочу обрабатывать данные только в каждом другом элементе моего исходного массива (который является _Datalist в приведенном ниже коде), следовательно, необходимо увеличить на 2.
Мой цикл:
for (int i = 1; i < _DataList.Length - 1; i += 2)
{
// Do work for _DataList[i]
}
Можно ли сказать параллельному циклу, что я хочу увеличить i на два вместо одного?
Вот параллельный цикл, но, очевидно, i увеличивается только на 1 на каждой итерации:
Task.Factory.StartNew(() =>
Parallel.For(1, _DataList.Length, i =>
{
// do work for _DataList[i]
})
);
Я мог бы сказать телу внутреннего цикла игнорировать нечетные значения i, но это кажется немного беспорядочным - есть ли способ сделать это каким-то образом при инициализации цикла?