非同步程式設計模式
更新:2007 年 11 月
非同步作業通常是用來執行可能需要很長時間才會完成的工作,例如,開啟大型檔案、連接到遠端電腦或查詢資料庫。非同步作業執行所在的執行緒與主應用程式的執行緒不同;當應用程式呼叫方法來以非同步方式執行作業時,非同步方法在執行其工作的同時,此應用程式仍可繼續執行。
.NET Framework 針對非同步作業提供了兩個設計模式:
使用 IAsyncResult 物件的非同步作業。
使用事件的非同步作業。
IAsyncResult 設計模式允許有各種程式設計模型,但是學習起來比較複雜,且提供了大多數應用程式不需要的彈性。類別庫設計人員應該盡可能地使用事件驅動的模型來實作非同步方法;在某些情況下,程式庫設計人員也應該實作 IAsyncResult 架構模型。
如需使用事件的非同步作業之相關文件,請參閱事件架構非同步模式概觀。
非同步程式設計是受 .NET Framework 多方面支援的功能,包括:
檔案 IO、資料流 IO、通訊端 IO。
網路。
遠端通道 (HTTP、TCP) 和 Proxy。
使用 ASP.NET 建立的 XML Web Service。
ASP.NET Web Form。
使用 MessageQueue 類別的訊息佇列。
在本節中
非同步程式設計概觀
討論 IAsyncResult 架構的非同步設計模式,此模式可提供一個彈性的程式設計模型來處理非同步作業。使用 IAsyncResult 呼叫非同步方法
提供程式碼範例,以示範應用程式可用來偵測非同步作業結尾的各種方法。使用委派非同步設計程式
描述如何以非同步方式呼叫同步方法。使用事件架構非同步模式設計多執行緒程式
描述事件架構非同步模式,此模式可提供一個使用事件進行跨執行緒通訊的非同步程式設計模型。