2026-03-06

[C#] Async 常見誤區:不是所有方法都需要 async Task

很多人一開始看 async/await,都會先把它當成語法糖。

我自己一開始也是這樣想

就覺得不就是把同步改成 await,讓 thread 不要卡住,看起來也比較現代一點,而且你現在用 copilot 應該也是 tab tab 就出來了

但真的在 API、網站服務,或是有點流量的系統裡用久之後,才會慢慢發現

async 不是只有能不能跑而已,它其實還會影響 效能、記憶體使用量,還有整體穩定度

有些 async code 表面上完全沒問題

但如果剛好寫在系統很常被呼叫的地方,它就可能一直默默建立 Task

平常流量小的時候不太有感,等到 request 一多,GC 開始變忙,延遲就會慢慢浮出來