欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C#中怎么實(shí)現(xiàn)異步調(diào)用

C#中怎么實(shí)現(xiàn)異步調(diào)用,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比青縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式青縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋青縣地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

首先,C#異步調(diào)用出來的新線程,必須回收,不回收是浪費(fèi)資源的可恥行為,.NET也是不允許的,所以你別想鉆空子,俗話說,請神容易送神難,就是這個道理。下面你可以很容易想到,回收分為2種情況:主動回收和被動回收(當(dāng)然,這是我自己的理解,微軟可不是這么說的),主動回收就是,你去監(jiān)視那個線程,并且等待,當(dāng)C#異步調(diào)用方法完成了,就把C#異步調(diào)用線程回收,焦點(diǎn)回歸主線程,實(shí)際上就是上篇文章《C#C#異步調(diào)用初步》的那種情況,BeginInvoke之后又EndInvoke,如果在EndInvoke的時候,該C#異步調(diào)用線程沒有完成操作,那么整個程序,包括主線程,又在阻塞了,又會出現(xiàn)界面“死”的情況。要想解決這個問題,就使用“被動回收”方式,其中一個重要的辦法就是“C#異步調(diào)用回調(diào)”。

C#異步調(diào)用核心有二:

A、 用回調(diào)函數(shù)(本例中為CallBackMethod),C#異步調(diào)用結(jié)束后,自動調(diào)用此回調(diào)函數(shù)。

B、 而不在主線程中手工等待C#異步調(diào)用結(jié)束,如上兩例中在主線程中調(diào)用EndInvoke。此種方法,是在回調(diào)函數(shù)中調(diào)用EndInvoke的。

C#異步調(diào)用回調(diào)的大概流程是這樣的:首先啟動C#異步調(diào)用,啟動參數(shù)加上C#異步調(diào)用結(jié)束時執(zhí)行的方法,然后這個C#異步調(diào)用線程就不用管了,***當(dāng)這個C#異步調(diào)用線程自己完成工作了,就自動執(zhí)行啟動參數(shù)里的那個方法,這樣確實(shí)很省心,可是代碼寫起來,就很復(fù)雜了。

下面是搜藏的代碼:

//首先準(zhǔn)備好,要進(jìn)行C#異步調(diào)用的方法(能C#異步調(diào)用的,***不多線程)  private string MethodName(int Num, out int Num2)  {   Num2 = Num;   return "HelloWorld";  }    //程序終點(diǎn)  //C#異步調(diào)用完成時,執(zhí)行的方法(回調(diào)方法),  //此方法只能有IAsyncResult一個參數(shù),但是該參數(shù)幾乎***,可以傳遞object  private void CallBackMethod(IAsyncResult ar)  {   //從C#異步調(diào)用狀態(tài)ar.AsyncState中,獲取委托對象   DelegateName dn = (DelegateName)ar.AsyncState;   //輸出參數(shù)   int i;     //一定要EndInvoke,否則你的下場很慘   string r = dn.EndInvoke(out i, ar);   MessageBox.Show("C#異步調(diào)用完成嘍!i的值是" i.ToString() ",r的值是" r);  }    //定義與方法同簽名的委托  private delegate string DelegateName(int Num, out int Num2);    //程序入口  private void Run()  {   //實(shí)例化委托并初賦值   DelegateName dn = new DelegateName(MethodName);   //輸出參數(shù)   int i;   //實(shí)例化回調(diào)方法   //把AsyncCallback看成Delegate你就懂了,  //實(shí)際上AsyncCallback是一種特殊的Delegate,就像Event似的   AsyncCallback acb = new AsyncCallback(CallBackMethod);   //C#異步調(diào)用開始   //如果參數(shù)acb換成null則表示沒有回調(diào)方法   //***一個參數(shù)dn的地方,可以換成任意對象,  //該對象可以被回調(diào)方法從參數(shù)中獲取出來,寫成null也可以。  //參數(shù)dn相當(dāng)于該線程的ID,如果有多個C#異步調(diào)用線程,  //可以都是null,但是絕對不能一樣,不能是同一個object,否則異常   IAsyncResult iar = dn.BeginInvoke(1, out i, acb, dn);   //去做別的事   //…………  }    //***的結(jié)果應(yīng)該是:i=1,r="HelloWorld"

另外,如果可以,定義委托的時候可以選擇不用過多的修飾:

/// ﹤summary﹥  /// 定義委托  /// ﹤/summary﹥  /// ﹤returns﹥﹤/returns﹥  public delegate bool Asyncdelegate();    /// ﹤summary﹥  /// Callback method must have the same signature as the  /// AsyncCallback delegate  /// ﹤/summary﹥  /// ﹤param name="ar"﹥﹤/param﹥  private void CallbackMethod(IAsyncResult ar)  {  // Retrieve the delegate.  Asyncdelegate dlgt = (Asyncdelegate)ar.AsyncState;    // Call EndInvoke to retrieve the results.  dlgt.EndInvoke(ar);  }

其他方法中調(diào)用:

//C#異步調(diào)用執(zhí)行  //指定委托方法  Asyncdelegate isgt = new Asyncdelegate(icpInfo.Insert);  IAsyncResult ar = isgt.BeginInvoke(  new AsyncCallback(CallbackMethod), isgt);

關(guān)于C#中怎么實(shí)現(xiàn)異步調(diào)用問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。

網(wǎng)站名稱:C#中怎么實(shí)現(xiàn)異步調(diào)用
新聞來源:http://aaarwkj.com/article36/ipcosg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、微信公眾號建站公司、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計、用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
日韩传媒在线观看视频| 一区二区视频精品在线观看| 成人黄网站色大片免费观看| 亚洲国产一区二区三区三州| 饥渴少妇高潮特殊按摩| 欧美日韩亚洲精品综合网| 亚洲国产中日韩精品综合| 国产叼嘿一区二区视频| 午夜一区二区三区精品| 欧美日韩一区二区三区四区在线观看| 午夜18禁毛片免费看| 精品午夜免费福利视频| 中文字幕亚洲精品视频| 久久东京热日韩精品一区| 日本欧美自拍偷拍高清| 日本不卡不码高清免费| 女人被爽到高潮呻吟免费看| 亚洲成人日韩在线播放| 日本亚洲一区二区在线观看| 成年人免费国产视频网站| 91精品国产自产在线观看| 国产看片色网站亚洲av| 未满十八禁止免费在线观看| 亚洲日本高清一二三区| 永久免费观看黄色录像| 国产精品视频黄色一区| 国产精品毛片视频一区二区| 亚洲一区精品中文字幕| 朋友的尤物人妻中文字幕| 日本女优久久精品观看| 亚洲成av人片青草影院| 午夜日本大胆裸体艺术| 麻豆av永久地址久久精品| 日韩欧美中文在线一区二区| 麻豆人妻性色av专区| 一区二区三区四区中文在线| 素人人妻一区二区三区| 桃色av一区二区三区| 成人一区二区三区乱码| 成人av在线播放亚洲| 国产精品黄色片在线观看 |