欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中异步回调函数用法实例

程序员文章站 2023-10-26 23:35:40
本文实例讲述了c#中异步回调函数用法。分享给大家供大家参考。具体如下: static void main(string[] args) { func<...

本文实例讲述了c#中异步回调函数用法。分享给大家供大家参考。具体如下:

static void main(string[] args)
{
 func<string,string> showmessage = showmessage;
 //设置了回调函数completed,不能有返回值
 iasyncresult result = showmessage.begininvoke("测试异步委托",new asynccallback(completed),null);
 //半段异步是否结束
 while(!result.iscompleted)
 {
  console.writeline("主线程可以进行其它的操作!");
 }
 console.readline();
}
static string showmessage(string x)
{
 string current = string.format("当前线程id为{0}",thread.currentthread.managedthreadid);
 thread.sleep(3000);
 return string.format("{0},输入为{1}", current, x);
}
static void completed(iasyncresult result)
{
 console.writeline("异步完成!");
 //获取委托对象,并用endinvoke方法获取返回结果
 asyncresult _result = (asyncresult) result;
 func<string, string> showmessage = (func<string, string>) _result.asyncdelegate;
 //结束异步操作并输出
 console.writeline(showmessage.endinvoke(_result));
}

希望本文所述对大家的c#程序设计有所帮助。