前言
從 PHP 轉到 C# 的世界一年多,對非同步設計不太理解,索性整理一下。
非同步觀念釐清
- 非同步不等於多執行緒(線程),只是減少等待時間。
- 非同步能增加 I/O bound 的產能(等待時間作其他事),但對 CPU bound 沒有幫助。
- 在 CPU bound 的情況下可以使用 Task.Run 讓方法調用執行緒(線程)新的在背景執行。
- 在 I/O bound 的情況下,則不該使用 Task.Run。
(Reference.)
ʕ •ᴥ•ʔ:整理一下 C# 的非同步案例。
感謝 Tintin 分享關於 thread 的細節。