2.3 关于async/await的原理介绍
一、 先看本例的运行结果,初步可以得到如下结论:
1) 异步方法是一个试用async修饰的方法(本例中的UseAsync方法),在内部使用任务调用异步操作(异步操作一般比较耗时),并使用await进行修饰。
2).异步方法返回Task或者Task<T>
3).异步的执行流程中,异步方法await后面的语句会在异步操作完成之后自动运行。
4). 调用此异步方法,不会导致主流程的堵塞。
5). await下方的代码会被编译器放到另外的方法中,在任务完成之后,才会继续运行这些代码。所以可以把await看成ContinueWith的语法糖
6)和普通方法一样,async方法在开始时以同步方式运行,await关键字会检测它后面的代码是否可用,若可用,就同步方式运行;若不可用,会把await后面的代码撂下来,立即返回,等任务完成后,再运行这个wait后面的代码。