Skip to content

ASP.NET

daniel edited this page Nov 5, 2025 · 4 revisions
  • cosmos DB 操作

  • 架構

  • Kestrel Web Server(ASP.NET Core 內建的 HTTP 伺服器)

用一句比喻講完:

🔹「Kestrel」是老闆,

🔹「Thread」是廚師,

🔹「Task」是訂單。

老闆收到訂單(HTTP Request),派廚師(Thread)去做, 廚師把訂單(Task)拿去執行,遇到要等的時候(await), 就先處理別的單,等食材回來再繼續煮。

  • 同步/非同步

用廚師比喻再整理

同步(Blocking)

廚師拿到訂單 → 一直等水開 → 不能做別的訂單 → 阻塞。

非同步(Non-blocking / async)

廚師拿到訂單 → 遇到水煮 → 把訂單掛起 → 去做其他訂單 → 水煮好再回來完成原本訂單。

每個訂單的步驟 仍按順序執行,只是廚師「看起來同時處理多單」。

小結

邏輯順序:非同步還是同步的,程式碼一行一行執行(按 await 先後)。

執行緒使用:非同步不會阻塞執行緒,可同時服務更多任務 → 提升吞吐量。

錯誤觀念要避免:非同步 ≠ 同時跑多個「真正的程式碼線程」,它只是 I/O 等待時釋放執行緒。

Clone this wiki locally