CPS全称是Continuation Passing Style,在.NET中,它会⾃动编译为: 1. 将所有引⽤的局部变量做成 闭包,放到⼀个隐藏的状态机的类中; 2. 将所有的await展开成⼀个状态号,有⼏个await就有⼏个状态 号; 3. 每次执⾏完⼀个状态,都重复回调状态机的MoveNext⽅法,同时指定下⼀个状态号; 4. MoveNext⽅法还需处理线程和异常等问题。