我们经常用async和await实现异步方法,那么他的实现原理是什么呢,今天介绍一下。
一.代码
1:介绍原理之前,先看一段简单的代码:
2:代码执行结果,如下所示,想必结果和大家的预期是一样的:
二.工具
研究async await使用的工具是dotPeek,注意:要勾选 show compiler-generated code。下载地址:https://www.jetbrains.com/decompiler/download/#section=web-installer
三.原理
也许大家都听说过,async await 是一个语法糖,编译器会生成一个状态机,那么这个状态机是什么样子,它又是怎样工作的呢?
1:通过dotPeek工具,进行反编译,会看到如下两段代码: