编译器如何知道在等待调用后在哪里恢复控制


REST调用基本上是无状态调用。然后,当我们对第三方api进行等待调用时,编译器或控件在哪里存储有关等待调用完成后需要处理的位置的信息。

编译器或控件在哪里存储有关等待调用完成后需要处理的位置的信息。

async关键字做两件事:它允许使用await关键字,并指示编译器将async方法分解为状态机。血腥的细节在这里,但总的来说:

每次使用await时,该方法都是"拆分"的,方法的每个"部分"都是状态机的不同部分。然后保存状态机的当前状态(以及局部变量的值(。当等待的任务完成时,该任务的继续执行状态机的下一步。

最新更新