在有時候,我們要從一些外裝置或是網絡索取大量資料時,外裝置可能須要處理非常久才幹把傳輸資料回計算機,這時我們僅僅有傻傻的等待。
但我們採用異步方法就不同了,我們能夠利用這點時間去做别的事,等待完畢後,再通知我們接收。
1.怎樣進行異步調用
(1)定義要運作異步的方法。
(2)定義一個與運作異步方法同樣簽名的托付。
(3)執行個體化該托付,該托付應該指向該異步方法。
(4)利用BeginInvoke啟動異步方法。
(5)利用EndInvoke得到結果。
(6)設定回調方法。(非必需)
2.BeginInvoke和EndInvoke方法的使用:
我們都知道當程式定義一個托付時,公共語言執行庫将自己主動為該托付定義具有簽名的BegInvoke和EndInvoke 方法
(1)BeginInvoke
BeginInvoke 方法用于啟動異步調用。它與你須要異步運作的方法具有同樣的參數,另外還有兩個額外的參數。
BeginInvoke 表示馬上傳回,不等待異步調用的完畢。
BeginInvoke 傳回一個IAsyncResult,可用于監視異步進度。
(2)EndInvoke
EndInvoke 方法用于檢索異步調用結果。調用BeginInvoke後可随時調用EndInvoke方法;假設異步調用未完畢,EndInvoke 将一直堵塞。
異步調用完畢。EndInvoke的參數包含您須要異步運作的方法的out和ref參數(在 Visual Basic 中為 <Out> ByRef 和 ByRef)以及由BeginInvoke 傳回的IAsyncResult。