我不明白的是下面的代码片段from MSDN:从调用者的角度来看,如何调用与调用同步方法不同的异步方法?
注意,这个方法现在标有新的异步关键字;这是 仅仅是编译器的一个指示器,它让它知道在该方法的 上下文中,关键字await将被视为点 ,其中工作流将控制权返回给其调用方,并在关联任务时再次提取 完成。
与非async
方法的工作方式有何不同?
如果我
int x;
x = SomeNormalFunctionThatReturnsAnInt();
Console.WriteLine(x);
或
int x;
Task<int> task = SomeAsyncFunctionThatReturnsAnInt();
x = await task;
Console.WriteLine(x);
然后从呼叫者的角度看,执行的顺序是完全相同:一个int
名为x
定义,运行返回int
的函数,并且当该函数完成运行时,其返回值设置为x
,然后写入控制台。
Task.Delay需要几毫秒而不是几秒钟,如果你想等待5秒钟,这将是Task.Delay(5000) –