你是否曾經在撰寫 .NET 應用程式時,遇過 UI 卡住、網站回應變慢、背景工作吞吐量不佳,或是被 async/await、Task.Run、ConfigureAwait(false)、取消與例外處理搞得一頭霧水?本書就是為了解決這些問題而寫。
這是一本從觀念建立到實戰應用,系統性帶你掌握 .NET 10 非同步程式設計的技術書。全書以清楚易懂的方式,帶你理解執行緒、Task、async/await、取消與逾時、同步機制、平行處理、非同步資料流、非同步資源管理,以及進階的 TaskCompletionSource、ValueTask、ExecutionContext、TaskScheduler、API 設計等主題。
本書不只告訴你語法怎麼寫,更重視背後的思考方式與實務判斷。你將學會什麼時候該用非同步、什麼時候該用平行處理、如何避免常見陷阱(例如 sync-over-async、死鎖、執行緒集區飢餓),以及如何寫出兼顧正確性、可讀性與效能的現代 .NET 程式。
書中內容涵蓋:
- 建立執行緒、併發、平行與非同步的清楚 mental model
- 熟練
async/await、Task.WhenAll、取消、逾時與例外處理 - 理解同步機制、執行緒安全、不可變設計與平行處理
- 掌握
IAsyncEnumerable<T>、await foreach、Channel與IAsyncDisposable - 深入
TaskCompletionSource、ValueTask、Task.Yield、ExecutionContext與TaskScheduler - 學習 .NET 非同步 API 設計原則
- 將這些觀念套用到 ASP.NET Core、WinForms、WPF、MAUI 等實際場景
無論你是想補強 async/await 基礎的 .NET 開發者,想更深入理解底層機制的中高階工程師,或是希望寫出更穩定、更流暢、更具延展性的應用程式,本書都能成為你在現代 .NET 非同步程式設計上的完整指南。
目標讀者
本書適合已具備 C# 或其他程式語言基礎,想深入學習 .NET 非同步程式設計的開發者,尤其適合:
- 有聽過或者用過
async/await,但對底層運作與最佳實踐還沒有完整把握的人。 - 想釐清
Task.Run、ConfigureAwait(false)、取消、逾時、例外處理等常見主題的人。 - 想從「會用語法」進一步走向「能做設計判斷」的 .NET 工程師。
- 想寫出更流暢、更穩定、更具延展性的應用程式的開發者。
如果你需要一本講解 C# 進階語法的書,可參考《現代 C#:AI 時代的開發者修煉》。
本書特色
本書以 .NET 10 為主要平台,並盡量採用現代 .NET 開發中的建議做法來說明各項主題。
為了幫助你更有效地學習,本書採用以下方式來引導內容:
- 理解優先:先掌握基礎核心觀念,再談語法、API 與實作細節。
- 實務導向:除了說明 API 怎麼用,也會討論適用情境、常見誤區與最佳實踐。
- 圖表與類比輔助:透過圖示與具體比喻,幫助你理解較抽象的執行流程與設計觀念。
- 範例程式碼連結:書中範例程式已上傳至 GitHub,並於適當處提供對應連結。
本書大綱
- 第 1 章:執行緒與非同步的奧秘
- 第 2 章:.NET 中的執行緒與工作
- 第 3 章:
async與await - 第 4 章:例外處理與取消
- 第 5 章:執行緒同步與經典問題
- 第 6 章:執行緒安全與不可變集合
- 第 7 章:平行處理與 PLINQ
- 第 8 章:非同步資料流與資源管理
- 第 9 章:Task 進階用法
- 第 10 章:實戰案例與最佳實務
- 第 11 章:非同步 API 設計指南
閱讀方法
本書可以循序閱讀,也可以依需求挑選主題閱讀;不過若你對非同步程式設計還在建立整體輪廓,建議先從前幾章一路往後讀,效果通常最好。
章節依賴提示:
- 第 1~4 章是全書基礎,建議優先閱讀。
- 第 5~8 章會把前面的非同步觀念延伸到同步機制、平行處理、資料流與資源管理。
- 第 9~11 章偏向進階主題與實戰應用,建立在前面章節之上。
如果你是帶著某個具體問題來閱讀,例如「為什麼 UI 會卡住?」、「Task.Run 到底能不能這樣用?」或「ValueTask 值不值得採用?」也可以先跳到相關章節,再回頭補齊前面的觀念。
重點還是要動手實作。閱讀過程中,若碰到任何不確定的地方,最好的方法往往不是多看兩遍,而是自己寫一個小範例跑跑看。只要親手驗證過一次,很多原本抽象的概念就會立刻變得具體。當然,你也可以跟 AI 助手一起協作,並且練習看懂 AI 產生的程式碼。
閱讀裝置建議:建議優先使用電腦或平板來閱讀本書,以獲得較佳的程式碼與圖表閱讀體驗。若使用電子書閱讀器,則建議選擇較大尺寸的裝置。
本書用到的工具
為了跟著本書實作練習,你需要準備:
- .NET 10 SDK 或更新版本
- 開發工具:Visual Studio 2026、Visual Studio Code、Rider,或其他支援 .NET 的編輯器/IDE
範例程式
本書的範例程式放在 GitHub 平台。網址如下:
讀者留言