C#非同步程式設計

jackwu74發表於2024-04-23

既然有了多執行緒為什麼還需要非同步

非同步 並不意味者多執行緒,單執行緒同樣可以非同步

  非同步預設藉助執行緒池

多執行緒經常阻塞,二非同步要求不阻塞
多執行緒與非同步的使用場景不同

多執行緒:

適合CPU 密集型操作 適合長期執行任務 執行緒的建立與開銷較大 提供更底層的控制,操作執行緒,鎖訊號量 執行緒不易與傳參及返回 執行緒的程式碼書寫繁瑣

非同步:

適合IO 密集型操作 適合短暫的小任務 避免執行緒阻塞,提高系統的響應能力

--------------------------------

什麼是非同步任務(Task)

1.非同步任務的各種狀態

1.1正在執行,完成,結果,報錯等

        Created -- WaitingToRun -- Running -- RanToCompletion / WaitingForActivation WaitingForChildrenToComplete Canceled Faulted

    1.2 ValueTask 值型別版本

    

相關文章