C#中異步回調(diào)函數(shù)用法實(shí)例
本文實(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)文章
c#對(duì)XML文檔的創(chuàng)建與增刪改查的示例代碼
這篇文章主要介紹了c#對(duì)XML文檔的創(chuàng)建與增刪改查的示例代碼,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07C#獲取計(jì)算機(jī)硬件與操作系統(tǒng)的相關(guān)信息
這篇文章介紹了C#獲取計(jì)算機(jī)硬件與操作系統(tǒng)相關(guān)信息的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04C# 三種方式實(shí)現(xiàn)Socket數(shù)據(jù)接收
這篇文章主要給大家分享三種實(shí)現(xiàn)C# 實(shí)現(xiàn)Socket數(shù)據(jù)接收的方式,接下倆小編就來為大家詳細(xì)介紹吧,需要的朋友可以參考一下2021-10-10C#基于FTP協(xié)議的簡(jiǎn)易軟件自動(dòng)升級(jí)程序
這篇文章主要為大家詳細(xì)介紹了C#基于FTP協(xié)議的簡(jiǎn)易軟件自動(dòng)升級(jí)程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03深入理解C# abstract和virtual關(guān)鍵字
深入理解C# abstract和virtual關(guān)鍵字,學(xué)習(xí)c#的朋友可以參考下。2011-06-06C#中DataSet、DataTable、DataRow數(shù)據(jù)的復(fù)制方法
這篇文章介紹了C#中DataSet、DataTable、DataRow數(shù)據(jù)的復(fù)制方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07C#實(shí)現(xiàn)的json序列化和反序列化代碼實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)的json序列化和反序列化代碼實(shí)例,本文講解了兩種實(shí)現(xiàn)方法,并直接給出代碼示例,需要的朋友可以參考下2015-06-06