前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#笔记:异步的复杂实现

C#笔记:异步的复杂实现

作者头像
超级大猪
发布2019-11-22 09:46:48
4640
发布2019-11-22 09:46:48
举报

1、定义委托,创建委托实例并传入需要处理的函数  

delegate string DoSomethingDele(int input);
DoSomethingDele _do = new DoSomethingDele(Dosomething);
 
//此函数用做测试,模拟操作占用的时间。返回占用的时间数。
 private static string Dosomething(int second)  
        {
            Thread.Sleep(second * 1000);
            return "延时了" + second + "秒";
        }

2、定义回调处理函数 

AsyncCallback asyncCallBackHander = (ar) =>
                {
                    Action<string> action = ar.AsyncState as Action<string>;//获取传入的回调函数
                    string str = _do.EndInvoke(ar);//获取异步处理返回值
                    action(str);//将返回值传入回调函数执行。
                };

3、定义回调函数,传入回调处理函数执行,它才是真正执行的回调函数 

private static void PrintCallBack(string str)
        {
            Console.WriteLine("异步调用完成:" + str);
        }

4、调用beginInvoke,传入异步操作的参数,传入回调处理函数,传入回调函数(作为回调处理函数的参数)

 var iasyncResult = _do.BeginInvoke(3,
                asyncCallBackHander
                ,
                (Action<string>)PrintCallBack);
 Console.WriteLine("异步调用完毕,不必管它,继续做一些其它的事");

5、完毕。 

在执行完BeginInvoke后,可以不用再去管它。接下来进行其它的任务,回调函数会在异步调用后自动启动。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-02-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档