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

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)化
欧美日韩亚洲一区二区搜索| 人妻内射一区二区在线视| 日韩精品一二区电影| 青青成线在人线免费啪| 欧美成人高清在线播放| 韩国一级av免费在线| 日本免费中文字幕在线| 日本a级片免费在线观看| 欧美口爆吞精在线观看| 亚洲最新一区二区在线观看| 亚洲国模av一区二区三区| 欧美日韩激情中文字幕| 亚洲黄香蕉视频免费看| 手机在线观看av网站| 精品欧美国产日韩在线观看| 日韩一二三区欧美四五区新| 变态另类日韩欧美高清| 香蕉视频网站欧美一区| 亚洲一区二区三区三洲| 特级特色生活片免费看| 成人av高清在线观看| 国产av不卡二区三区| 久久精品少妇人妻视频| 人妻露脸国语对白字幕| 亚洲清纯唯美激情四射| 精品免费av在线播放| 亚洲欧洲美洲中文天堂| 免费看欧美粗又大爽老| 久久久精品免费中文视频| 亚洲一品道在线观看| 麻豆人妻少妇精品系列| 亚洲日本韩国在线免费| 白白色手机视频免费看| 日本av高清视频在线观看| 青草视频在线播放免费| 欧美另类精品一区二区三区| 丰满少妇一级淫片在线播放| 日韩无遮挡免费在线观看| 日韩美少妇大胆一区二区| 亚洲精品尤物福利在线一区| 久久精品性少妇一区=区三区|