ฉันต้องการแปลง for loop ซึ่งเพิ่มตัววนซ้ำ 2 ทุกๆ การส่งผ่านเป็น Parallel For loop โดยใช้ TPL ข้อมูลไม่ได้ขึ้นอยู่กับลำดับหรือข้อจำกัดใดๆ แต่ฉันต้องการประมวลผลข้อมูลในองค์ประกอบอื่นๆ ของอาร์เรย์ต้นทางของฉันเท่านั้น (ซึ่งก็คือ _Datalist ในโค้ดด้านล่าง) ดังนั้นจึงต้องเพิ่มขึ้น 2
ห่วงของฉัน:
for (int i = 1; i < _DataList.Length - 1; i += 2)
{
// Do work for _DataList[i]
}
เป็นไปได้ไหมที่จะบอกลูปขนานว่าฉันต้องการเพิ่ม i ทีละสองแทนที่จะเป็นหนึ่ง?
นี่คือ Parallel Loop แต่เห็นได้ชัดว่าฉันเพิ่มขึ้นเพียง 1 ต่อการวนซ้ำแต่ละครั้ง:
Task.Factory.StartNew(() =>
Parallel.For(1, _DataList.Length, i =>
{
// do work for _DataList[i]
})
);
ฉันสามารถบอกเนื้อความของลูปด้านในให้ละเว้นค่าแปลก ๆ ของ i ได้ แต่ดูเหมือนว่าจะยุ่งนิดหน่อย - มีวิธีทำในการเริ่มต้นลูปหรือไม่?