【发布时间】:2017-12-13 06:12:53
【问题描述】:
我在 C# 中有以下内容
public static void Main()
{
var result = Foo(new Progress<int>(i =>
Console.WriteLine("Progress: " + i)));
Console.WriteLine("Result: " + result);
Console.ReadLine();
}
static int Foo(IProgress<int> progress)
{
for (int i = 0; i < 10; i++)
progress.Report(i);
return 1001;
}
Main 的一些输出是:
第一次运行:
Result: 1001
Progress: 4
Progress: 6
Progress: 7
Progress: 8
Progress: 9
Progress: 3
Progress: 0
Progress: 1
Progress: 5
Progress: 2
第二次运行:
Progress: 4
Progress: 5
Progress: 6
Progress: 7
Progress: 8
Progress: 9
Progress: 0
Progress: 1
Progress: 2
Result: 1001
Progress: 3
等等……
每次运行,输出都是不同的。如何同步这些方法,以便按照它们报告的顺序显示进度 0,1,...9,然后是结果 1001。我希望输出如下所示:
Progress: 0
.
.
.
Progress: 9
Result: 1001
【问题讨论】: