欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
關(guān)于.NET異步調用的初步總結
關(guān)于.NET異步調用的初步總結 收藏
異步調用的實(shí)質(zhì):
異步調用通過(guò)委托將所需調用的方法置于一個(gè)新線(xiàn)程上運行,從而能夠使一個(gè)可能需要較長(cháng)時(shí)間的任務(wù)在后臺執行而不影響調用方的其他行為。

異步調用的實(shí)現:
前面已經(jīng)講道,異步調用通過(guò)委托實(shí)現。委托支持同步和異步調用。在同步調用中,一個(gè)委托的實(shí)例可記錄多個(gè)目標方法;在異步調用中,一個(gè)委托實(shí)例中有且只能包含一個(gè)目標方法。異步調用使用委托實(shí)例的BeginInvoke方法和EndInvoke方法分別開(kāi)始調用和檢索返回值,這兩個(gè)方法在編譯期生成。調用BeginInvoke后委托立即返回;調用EndInvoke時(shí)倘若委托方法未執行完畢,則阻塞當前線(xiàn)程至調用完畢。
 
假設有一個(gè)委托
public delegate int ASyncHandler(int a, string b, ref string c);
那么,其BeginInvoke與EndInvoke的形式如下:
public IAsyncResult BeginInvoke(int a, string b, ref string c, AsyncCallback callback, object asyncState);
public int EndInvoke(ref string c, IAsyncResult asyncResult);
也就是說(shuō),BeginInvoke與EndInvoke的參數列表與當前委托簽名有關(guān),可以總結為:
public IAsyncResult BeginInvoke(委托所具有的全部參數,AsyncCallback callback,object asyncState);
public 委托返回值 EndInvoke(委托參數中ref/out部分,IAsyncResult asyncResult);
BeginInvoke返回一個(gè)IAsyncResult,其實(shí)質(zhì)是實(shí)現IAsyncResult的System.Runtime.Remoting.Messaging.AsyncResult類(lèi)。該對象相當于一個(gè)“憑證”,在調用EndInvoke時(shí)用于確認應等待返回的方法(猜測如此)。就像去銀行,存錢(qián)時(shí)拿到一份存折(憑證),取款時(shí)依據存折(憑證)取款。
EndInvoke檢索委托返回值,并返回標有ref/out的參數值。
IAsyncResult接口聲明:
view plaincopy to clipboardprint?
public interface IAsyncResult  
{  
    object AsyncState { get;}  
    WaitHandle AsyncWaitHandle { get;}  
    bool CompletedSynchronously { get;}  
    bool IsCompleted { get;}  

public interface IAsyncResult
{
    object AsyncState { get;}
    WaitHandle AsyncWaitHandle { get;}
    bool CompletedSynchronously { get;}
    bool IsCompleted { get;}
}
 
等待調用結束的四種方法:
1、使用EndInvoke主動(dòng)等待異步調用結束。這是最簡(jiǎn)單的一種方法,適用于非用戶(hù)界面程序及一些IO操作,因為在調用EndInvoke之后當前線(xiàn)程被阻塞,除了等待什么都不能做。
2、使用WaitHandle等待異步調用結束。IAsyncResult中有WaitHandle成員,獲取用于等待異步操作完成的WaitHandle,即調用結束信號。使用WaitHandle.WaitOne()可以阻塞當前線(xiàn)程至異步調用完成。這樣做的好處是:在調用WaitOne之后、EndInvoke之前,可以執行其他處理。
3、主動(dòng)輪詢(xún)。使用IAsyncResult中有IsCompleted成員檢索當前異步調用情況。該方法適用于用戶(hù)界面程序,想象可在一個(gè)循環(huán)內做到既等待委托完成,又可以更新用戶(hù)界面。
4、使用回調,在異步調用結束時(shí)執行一個(gè)操作。前面的BeginInvoke方法簽名的最后兩個(gè)參數用于回調。需要用到AsyncCallback委托:
public delegate void AsyncCallback(IAsyncResult asyncResult);
回調方法在系統線(xiàn)程池中執行。BeginInvoke的最后一個(gè)參數(object asyncState)可以傳遞包含回調方法將要使用的信息的對象。在回調方法中調用EndInvoke可以通過(guò)取得System.Runtime.Remoting.Messaging.AsyncResult.AsyncDelegate實(shí)現。
個(gè)人認為方法1、2相差不算太大。
先寫(xiě)這么些,以后再補上其他的一些東西。
 
本文來(lái)自CSDN博客,轉載請標明出處:http://blog.csdn.net/aspnet2002web/archive/2010/12/17/6082838.aspx
本文來(lái)自CSDN博客,轉載請標明出處:http://blog.csdn.net/aspnet2002web/archive/2010/12/17/6082838.aspx
本文來(lái)自CSDN博客,轉載請標明出處:http://blog.csdn.net/aspnet2002web/archive/2010/12/17/6082838.aspx
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
什么是.Net的異步機制(APM核心:IAsyncResult) - step 3 - Y...
C#異步調用的好處和方法
關(guān)于異步編程(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小總結)
C#異步調用的應用淺析
多線(xiàn)程(一):異步委托
深入APM,實(shí)現自己的APM
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久