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