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); }
);
答案 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); }
);