C#中異步回調(diào)函數(shù)用法實(shí)例
更新時(shí)間:2015年04月22日 10:27:59 作者:dingding
這篇文章主要介紹了C#中異步回調(diào)函數(shù)用法,實(shí)例分析了異步回調(diào)函數(shù)的定義及使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了C#中異步回調(diào)函數(shù)用法。分享給大家供大家參考。具體如下:
static void Main(string[] args)
{
Func<string,string> showMessage = ShowMessage;
//設(shè)置了回調(diào)函數(shù)Completed,不能有返回值
IAsyncResult result = showMessage.BeginInvoke("測(cè)試異步委托",new AsyncCallback(Completed),null);
//半段異步是否結(jié)束
while(!result.IsCompleted)
{
Console.WriteLine("主線程可以進(jìn)行其它的操作!");
}
Console.ReadLine();
}
static string ShowMessage(string x)
{
string current = string.Format("當(dāng)前線程id為{0}",Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(3000);
return string.Format("{0},輸入為{1}", current, x);
}
static void Completed(IAsyncResult result)
{
Console.WriteLine("異步完成!");
//獲取委托對(duì)象,并用EndInvoke方法獲取返回結(jié)果
AsyncResult _result = (AsyncResult) result;
Func<string, string> showMessage = (Func<string, string>) _result.AsyncDelegate;
//結(jié)束異步操作并輸出
Console.WriteLine(showMessage.EndInvoke(_result));
}
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
常用.NET工具(包括.NET可再發(fā)行包2.0)下載
常用.NET工具(包括.NET可再發(fā)行包2.0)下載...2007-03-03
C#上位機(jī)與三菱PLC通訊的實(shí)現(xiàn)步驟(圖文)
這篇文章主要介紹了C#上位機(jī)與三菱PLC通訊的實(shí)現(xiàn)步驟(圖文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
C#基于正則表達(dá)式刪除字符串中數(shù)字或非數(shù)字的方法
這篇文章主要介紹了C#基于正則表達(dá)式刪除字符串中數(shù)字或非數(shù)字的方法,涉及C#針對(duì)數(shù)字的簡(jiǎn)單正則匹配相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
C#實(shí)現(xiàn)由四周向中心縮小的窗體退出特效
這篇文章主要介紹了C#實(shí)現(xiàn)由四周向中心縮小的窗體退出特效,通過(guò)簡(jiǎn)單的C#窗口調(diào)用參數(shù)設(shè)置實(shí)現(xiàn)該退出特效功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-08-08
C#訪問(wèn)SqlServer設(shè)置鏈接超時(shí)的方法
這篇文章主要介紹了C#訪問(wèn)SqlServer設(shè)置鏈接超時(shí)的方法,涉及CommandTimeout屬性的相關(guān)設(shè)置技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-06-06
Unity3D開(kāi)發(fā)教程:憤怒的小鳥(niǎo)
這篇文章詳細(xì)的講解了如何從0開(kāi)發(fā)出一個(gè)Unity3D的小游戲憤怒的小鳥(niǎo),本文包含大量的圖片與文字描述,也含有大量的源代碼,可以讓你快速入手,希望本篇文章對(duì)你有所幫助2021-06-06

