代码之家  ›  专栏  ›  技术社区  ›  abenci

Parallel.For()循环中的进度更新

  •  5
  • abenci  · 技术社区  · 14 年前

    您可以猜到Parallel.For()循环的索引从一个值跳到另一个值。我怎样才能估计完成的工作量?

    谢谢。

    2 回复  |  直到 14 年前
        1
  •  7
  •   Marc Gravell    14 年前

    不看指数,只看计数器?例如:

    int counter  = 0;
    Parallel.For(4, 500, i => {
        // TODO: something useful...         
        int progress = Interlocked.Increment(ref counter);
        Console.WriteLine("{0}: {1}", progress, i);
    });
    

    (在 Interlocked counter )

        2
  •  3
  •   Andrey    14 年前
    int progress = 0;
    Parallel.For( from, to, i => {
    // do the job
    Interlocked.Increment(ref progress);
    });
    

    (float)(to - from) / progress

    推荐文章