網站建設如何實現C#異步調用
2010/8/13 10:04:45
網站建設要實現C#異步調用,首先要啟動C#異步調用,然后在檢索C#異步調用。通常情況下,我們使用BeginInvoke方法啟動C#異步調用,用EndInvoke方法檢索C#異步調用結果。BeginInvoke方法與需要異步執行的方法具有相同的參數,BeginInvoke立即返回,不等待C#異步調用完成。BeginInvoke返回IasyncResult,可用于監視調用進度;EndInvoke方法之前要調用BeginInvoke,如果C#異步調用未完成,EndInvoke將一直阻塞到C#異步調用完成。EndInvoke的參數包括您需要異步執行的方法的out和ref參數以及由BeginInvoke返回的IAsyncResult。
使用BeginInvoke和EndInvoke進行C#異步調用的常用方法
一、使用 WaitHandle 等待異步調用
等待 WaitHandle 是一項常用的線程同步技術。您可以使用由 BeginInvoke 返回的 IAsyncResult 的 AsyncWaitHandle 屬性來獲取 WaitHandle。C#異步調用完成時會發出 WaitHandle 信號,而您可以通過調用它的 WaitOne 等待它。如果您使用 WaitHandle,則在C#異步調用完成之后,但在通過調用 EndInvoke 檢索結果之前,可以執行其他處理。
二、異步調用完成時執行回調方法
如果啟動異步調用的線程不需要處理調用結果,則可以在調用完成時執行回調方法?;卣{方法在 ThreadPool 線程上執行。要使用回調方法,必須將代表該方法的 AsyncCallback 委托傳遞給 BeginInvoke。也可以傳遞包含回調方法將要使用的信息的對象。
三、輪詢異步調用完成
您可以使用由 BeginInvoke 返回的 IAsyncResult 的 IsCompleted 屬性來發現C#異步調用何時完成。從用戶界面的服務線程中進行C#異步調用時可以執行此操作。輪詢完成允許用戶界面線程繼續處理用戶輸入。
四、使用 EndInvoke 等待異步調用
異步執行方法的最簡單方式是以 BeginInvoke 開始,對主線程執行一些操作,然后調用 EndInvoke。EndInvoke 直到C#異步調用完成后才返回。這種技術非常適合網站建設的文件或網絡操作,但是由于它阻塞 EndInvoke,所以不要從用戶界面的服務線程中使用它。
返回列表
返回首頁
主站蜘蛛池模板:
欧美丰满熟妇xxxx|
草莓视频秋葵视频在线观看ios|
女大学生的沙龙|
久久久久久亚洲精品中文字幕|
欧美成人免费一区二区|
免看**毛片一片成人不卡|
色www永久免费|
国产在线视频网|
亚洲人成网站看在线播放|
国内精品久久久久伊人av|
xxxx日本免费|
成人影院wwwwwwwwwww|
久久夜色精品国产噜噜亚洲AV
|
两个人的视频www免费|
日本精品少妇一区二区三区
|
九九精品99久久久香蕉|
欧美特黄视频在线观看|
人禽无码视频在线观看|
精品国产av一二三四区|
国产xxxxxx久色视频在|
高清一级做a爱免费视|
国产欧美综合一区二区三区|
亚洲国产成人资源在线软件|
蜜桃视频在线观看官网|
国产精品100页|
97久久免费视频|
日本理论片2828理论片|
亚洲av无码乱码国产精品fc2|
欧美日本国产VA高清CABAL|
亚洲视频在线免费|
看一级毛片女人洗澡|
午夜无码伦费影视在线观看|
自拍另类综合欧美小说|
国产亚洲精品精品国产亚洲综合|
黄页网址大全免费观看35|
国产特级毛片aaaaaa|
**一级一级毛片免费观看|
国产视频一区二|
99久久久精品免费观看国产|
天天操天天爱天天干|
www.中文字幕.com|