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("測試異步委托",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("異步完成!");
//獲取委托對象,并用EndInvoke方法獲取返回結(jié)果
AsyncResult _result = (AsyncResult) result;
Func<string, string> showMessage = (Func<string, string>) _result.AsyncDelegate;
//結(jié)束異步操作并輸出
Console.WriteLine(showMessage.EndInvoke(_result));
}
希望本文所述對大家的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)步驟(圖文),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
C#基于正則表達(dá)式刪除字符串中數(shù)字或非數(shù)字的方法
這篇文章主要介紹了C#基于正則表達(dá)式刪除字符串中數(shù)字或非數(shù)字的方法,涉及C#針對數(shù)字的簡單正則匹配相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
C#實(shí)現(xiàn)由四周向中心縮小的窗體退出特效
這篇文章主要介紹了C#實(shí)現(xiàn)由四周向中心縮小的窗體退出特效,通過簡單的C#窗口調(diào)用參數(shù)設(shè)置實(shí)現(xiàn)該退出特效功能,非常簡單實(shí)用,需要的朋友可以參考下2015-08-08
C#訪問SqlServer設(shè)置鏈接超時(shí)的方法
這篇文章主要介紹了C#訪問SqlServer設(shè)置鏈接超時(shí)的方法,涉及CommandTimeout屬性的相關(guān)設(shè)置技巧,非常簡單實(shí)用,需要的朋友可以參考下2015-06-06

