C# async/await
async/await 是在 C# 5.0(2012年發布,與 .NET Framework 4.5 一起推出)中引入的重要功能。讓我為你列出 C# 處理非同步的演進歷史:
|
C# 1.0 - 4.5 時期(2002-2011) // 最早期的非同步寫法 Thread thread = new Thread(() => { // 做一些事 }); thread.Start(); // 使用委派和回調 BeginInvoke(callback, state); |
|
C# 4.0(2010) // 使用 Task Task.Factory.StartNew(() => { // 做一些事 }); |
|
C# 5.0(2012)引入 async/await // 現代的寫法 public async Task DoWorkAsync() { await Task.Delay(1000); } |
為什麼 async/await 這麼重要:
- 在 C# 5.0 之前,處理非同步操作很複雜
- 程式碼難以閱讀和維護
- 錯誤處理(try/catch)很麻煩
- 容易寫出有 bug 的程式
現在(C# 12):
- async/await 已經成為標準功能
- 幾乎所有的 .NET 函式庫都支援非同步操作
- 可以輕鬆寫出不會阻塞的程式
所以如果你用的是 .NET Framework 4.5 或更新版本,就可以使用 async/await 了!