[C#] 並行與異步編程完整教學
C# 並行與異步編程完整教學 目錄 基礎概念 處理器架構 同步機制 異步編程元件 常見模式 常見問題與陷阱 基礎概念 多執行緒與並行 執行緒 (Thread) 是作業系統能夠進行運算排程的最小單位。一個程序可以包含多個執行緒,這些執行緒共享程序的記憶體空間。 並行 (Concurrency) 是指多個任務在重疊的時間段內執行,不一定是同時執行。 平行 (Parallelism) 是指多個任務在同一時刻真正同時執行,需要多核處理器支援。 異步編程 (Asynchronous Programming) 異步編程允許程式在等待某個操作完成時繼續執行其他工作,而不是阻塞等待。在 C# 中,主要透過 async 和 await 關鍵字實現。 // 同步版本 - 會阻塞執行緒 public string DownloadData(string url) { var client = new HttpClient(); var response = client.GetStringAsync(url).Result; // 阻塞 return response; } // 異步版本 - 不阻塞執行緒 public async Task<string> DownloadDataAsync(string url) { var client = new HttpClient(); var response = await client.GetStringAsync(url); // 不阻塞 return response; } 關鍵差異: ...