使用異步委托執行線程(delegate)


由於異步委托產生的線程與應用程序主線程是分開執行的,若主線程要獲取異步委托線程的結果,則主線程需要等待異步委托的執行結果。

BeginInvoke是Delegate類型的一個方法,它的返回類型為IAsyncResult,通過該接口,可以獲得異步委托的執行信息。

1、投票技術:等待異步委托結果的一種方法是投票技術,該技術的實現原理是通過IAsyncResult接口的IsComplete屬性來檢查委托是否完成了任務。EndInvote方法獲取執行結果。舉個例子,如下:

執行后的效果:

2、訪問等待句柄技術:是等待異步委托結果的第二種方法,其實也就是使用IAsyncResultAsync接口的AsyncWaitHandle屬性來訪問等待句柄的,通過該屬性獲得一個WaitHandle對象,WaitHandle對象有個方法WaitOne()。

代碼如下:

執行效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM