如何在Parallel.For中增加特定值的索引?

ole*_*sii 8 c# parallel-processing

我想在特定值上增加索引,例如2:

for (int i = 0; i < 10; i+=2)
{
    Console.WriteLine(i);
}
Run Code Online (Sandbox Code Playgroud)

我如何使用Parallel该类做同样的事情,例如:

Parallel.For(0, 10, i =>
{
    Console.WriteLine(i);
    i += 2; //this a naïve assumption, it's not working
});
Run Code Online (Sandbox Code Playgroud)

编辑

我希望Parallel循环只运行5个操作(作为顺序),顺序对我来说无关紧要.

Ric*_*lly 10

第一个循环中的隐含假设是j按顺序递增.
在第二个例子中,j的值可以是任何循环中的0 - > 9中的任何一个.

您可以通过以下方式实现相同的行为:

Parallel.ForEach(Enumerable.Range(0, 5).Select(i => i*2), i =>
{
  Console.WriteLine(i);
});
Run Code Online (Sandbox Code Playgroud)