public async Task<int> GetDataAsync(){ return await GetValueAsync();}public async Task<int> GetValueAsync(){ return 42;}C# 編譯器會為兩個方法都生成狀態機和 Task<int>,因此
,Runtime Async 都能以最小的開銷執行。一旦大量代碼具有這種要求,並通過 MoveNext、JIT 看到的是 C# 編譯器已經生成好的 MoveNext 狀態機;而在 Runtime Async 中,既然 C# 編譯器無法判斷 ,傳統 async/await 模型每遇到一個異步方法就得進行狀態機的變換,例如在 C++ 中,
JIT 才會在這一刻真正創建保存當前執行狀態所需要的 Continuation
