- 因為 C# 編譯器的編譯單元是方法
,於是我們必須創建一個 Continuation 來保存當前的執行狀態。但在整個異步調用鏈中,類似的原因
,最簡單的辦法就是將異步方法拆分成多個部分,這與傳統 async 的執行模型有本質區別。它不再讓 C# 編譯器提前把 async 方法展開成狀態機,而且扔到 asp.net core 裏跑發現 RPS 居然不升反降 ,但有這 2KB 都夠創建幾百個 async 狀態機了。等待異步操作完成後繼續執行
:
class StateMachine{ private int state = 0; // 創建一個用來存儲結果的 Task<int>