计算for
完成百分比很容易:
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
// Do somethings...
Console.WriteLine("{0}% Done!", i * 10 + j + 1);
}
}
输出:
1% Done!
2% Done!
3% Done!
4% Done!
5% Done!
6% Done!
7% Done!
8% Done!
9% Done!
10% Done!
11% Done!
12% Done!
13% Done!
...
93% Done!
94% Done!
95% Done!
96% Done!
97% Done!
98% Done!
99% Done!
100% Done!
但我对计算完成百分比一无所知Parallel.For
:
Parallel.For(0, 10, i =>
{
Parallel.For(0, 10, j =>
{
// Do somethings...
Console.WriteLine("{0}% Done!", i * 10 + j + 1);
});
});
输出:
1% Done!
2% Done!
3% Done!
51% Done!
52% Done!
53% Done!
54% Done!
55% Done!
56% Done!
57% Done!
58% Done!
59% Done!
60% Done!
4% Done!
5% Done!
6% Done!
...
69% Done!
70% Done!
71% Done!
72% Done!
73% Done!
74% Done!
75% Done!
76% Done!
77% Done!
78% Done!
79% Done!
80% Done!
36% Done!
37% Done!
38% Done!
39% Done!
40% Done!
35% Done!
输出未显示正确的完成百分比。
如何在Parallel.For
不降低性能的情况下计算完成百分比?