TPL を使用して、パスごとに反復子を 2 ずつインクリメントする for ループを並列 For ループに変換したいと考えています。データは順序に依存したり制約されたりすることはありませんが、ソース配列の他のすべての要素 (以下のコードでは _Datalist) のデータのみを処理したいので、2 ずつインクリメントする必要があります。
私のForループ:
for (int i = 1; i < _DataList.Length - 1; i += 2)
{
// Do work for _DataList[i]
}
i を 1 ではなく 2 ずつインクリメントすることを並列ループに伝えることはできますか?
ここに並列ループがありますが、明らかに i は反復ごとに 1 だけ増加します。
Task.Factory.StartNew(() =>
Parallel.For(1, _DataList.Length, i =>
{
// do work for _DataList[i]
})
);
i の奇数の値を無視するように内側のループ本体に指示することもできますが、それは少し厄介なようです。ループの初期化で何らかの方法でそれを行う方法はありますか?