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 了!

← 回列表