我想使用 TPL 将每次通过 2 递增迭代器的 for 循环转换为并行 For 循环。数据不依赖于顺序或以任何方式受到约束,但我只想处理源数组的每个其他元素中的数据(在下面的代码中为 _Datalist),因此需要增加 2。
我的 For 循环:
for (int i = 1; i < _DataList.Length - 1; i += 2)
{
// Do work for _DataList[i]
}
是否可以告诉并行循环我想将 i 增加 2 而不是 1?
这是并行循环,但显然 i 每次迭代只增加 1:
Task.Factory.StartNew(() =>
Parallel.For(1, _DataList.Length, i =>
{
// do work for _DataList[i]
})
);
我可以告诉内部循环体忽略 i 的奇数值,但这似乎有点混乱 - 有没有办法在循环初始化中以某种方式做到这一点?