[C#] C#中异步回调函数演示代码 →→→→→进入此内容的聊天室

来自 , 2020-12-18, 写在 C#, 查看 110 次.
URL http://www.code666.cn/view/6abba5d8
  1. static void Main(string[] args)
  2. {
  3.     Func<string,string> showMessage = ShowMessage;
  4.     //设置了回调函数Completed,不能有返回值
  5.     IAsyncResult result = showMessage.BeginInvoke("测试异步委托", new AsyncCallback(Completed), null);
  6.     //半段异步是否结束
  7.     while(!result.IsCompleted)
  8.     {
  9.         Console.WriteLine("主线程可以进行其它的操作!");
  10.     }
  11.     Console.ReadLine();
  12.        
  13. }
  14. static string ShowMessage(string x)
  15. {
  16.     string current = string.Format("当前线程id为{0}",Thread.CurrentThread.ManagedThreadId);
  17.     Thread.Sleep(3000);
  18.     return string.Format("{0},输入为{1}", current, x);
  19.    
  20. }
  21. static void Completed(IAsyncResult result)
  22. {
  23.     Console.WriteLine("异步完成!");
  24.     //获取委托对象,并用EndInvoke方法获取返回结果
  25.     AsyncResult _result = (AsyncResult) result;
  26.     Func<string, string> showMessage = (Func<string, string>) _result.AsyncDelegate;
  27.     //结束异步操作并输出
  28.     Console.WriteLine(showMessage.EndInvoke(_result));
  29. }
  30. //csharp/6984

回复 "C#中异步回调函数演示代码"

这儿你可以回复上面这条便签

captcha