class Program
{
static void Main(string[] args)
{
Task task = Display();
task.Wait();
Console.ReadKey();
}
static async Task Display()
{
var process = new Progress<int>((percent) => {
Console.WriteLine("Percent " + percent);
});
await Task.Run(() => {
RunProcess(process);
});
}
static void RunProcess(IProgress<int> process)
{
int n = 0;
for (int i = 0; i < 10; i++)
{
Thread.Sleep(1000);
if (null != process)
{
n = 10 * i;
process.Report(n);
}
}
}
}
运行结果