繁体   English   中英

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

[英]How does the compiler know where to resume control after an await call

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

一旦 await 调用完成,编译器或控件在哪里存储有关它需要处理的位置的信息。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM