Parallel.For vs Regular for循环与逻辑语句

时间:2017-04-16 16:52:41

标签: c# asp.net asp.net-mvc c#-4.0 parallel-processing

我试图在我的Parallel.For循环中复制以下内容:

   for (int i = 1; i <= totalPages; i++) {
       // do something here...      
   }

请注意我如何声明i计数器:

i <= totalPages

我想用Parallel.For循环或使用PLINQ ...

来复制它
 Parallel.For(1, totalPages, i => {

 });

但是我无法告诉并行for循环包含最后一个数字。

如果totalPages = 15,我希望这个数字也包含在柜台中......

可以通过Parallel.For循环或PLINQ完成吗?

P.S。伙计们,totalPages只是一个普通的整数,而不是一个集合。

2 个答案:

答案 0 :(得分:1)

您用于Parallel.For的重载使用以下参数

  1. fromInclusive
  2. toExclusive
  3. 如参数名称所示,from包含循环中的当前数字。因此,如果您传递1作为值,则循环也将包含1。但对于第二个参数,它是独家的。它不包括“到”号码。因此,如果你传递5,它将不会在循环的迭代中包含5。

    您可以将1添加到totalPages变量值,并将该算术运算的结果作为toExclusive参数值传递(假设totalPages的类型为Int32totalPages < Int32.MaxValue-1防止算术溢出异常))

    Parallel.For(1, totalPages+1, i =>
    {
        Console.WriteLine(i);
    });
    

    对于i,这将是1,2,3,4,5(不一定是相同的顺序

答案 1 :(得分:0)

您可以在限制变量中添加一个,如下所示

Parallel.For(seed, limit+1,i=>{ //statements })