如何在并行嵌套循环上添加百分比完成?

时间:2011-09-29 09:44:17

标签: c# parallel-processing

例如,我希望我能看到1%~100%,我怎么能这样做?

Parallel.For<Dictionary<int, long>>(0, r1, () => new Dictionary<int, long>(), (j, loop, tmpWinRange) =>
    {
        for (int k = 0; k < r2; k++)
            for (int l = 0; l < r3; l++)
                for (int m = 0; m < r4; m++)
                {
                    int pay = GetPay(j, k, l, m);
                    tmpWinRange[pay]++;
                }
        return tmpWinRange;
    },
(x) => { tmpWinRangeCollection.Add(x); }
);

1 个答案:

答案 0 :(得分:0)

如何使用互锁增量来更新进度?

int progressCount = 0;
Parallel.For<Dictionary<int, long>>(0, r1, () => new Dictionary<int, long>(), 
    (j, loop, tmpWinRange) => 
    { 
        for (int k = 0; k < r2; k++) 
            for (int l = 0; l < r3; l++) 
                for (int m = 0; m < r4; m++) 
                { 
                    int pay = GetPay(j, k, l, m); 
                    tmpWinRange[pay]++; 
                }
        Interlocked.Increment(ref progressCount);

        return tmpWinRange; 
    }, 
    (x) => { tmpWinRangeCollection.Add(x); } 
);