我在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;
}
主要程序的一些输出内容如下:
第一次运行:
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