Saya ingin mengonversi loop for yang menambah iterator sebanyak 2 setiap pass menjadi loop Paralel For menggunakan TPL. Data tidak bergantung pada urutan atau dibatasi dengan cara apa pun, tetapi saya hanya ingin memproses data di setiap elemen lain dari array sumber saya (yaitu _Datalist pada kode di bawah), sehingga perlu bertambah 2.
Lingkaran Untuk Saya:
for (int i = 1; i < _DataList.Length - 1; i += 2)
{
// Do work for _DataList[i]
}
Apakah mungkin untuk memberi tahu loop paralel bahwa saya ingin menambah i sebanyak dua, bukan satu?
Inilah Parallel Loop, tapi yang jelas i hanya bertambah 1 setiap iterasi:
Task.Factory.StartNew(() =>
Parallel.For(1, _DataList.Length, i =>
{
// do work for _DataList[i]
})
);
Saya dapat memberitahu badan loop bagian dalam untuk mengabaikan nilai ganjil dari i, tetapi itu tampaknya sedikit berantakan - apakah ada cara untuk melakukannya dalam inisialisasi loop?