簡體   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