专栏首页大猪的笔记C#笔记:异步的复杂实现

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

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后,可以不用再去管它。接下来进行其它的任务,回调函数会在异步调用后自动启动。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • nginx相关配置

    gunicorn --bind=0.0.0.0:8000 dazhu.wsgi:application

    超级大猪
  • 搭建go环境

    超级大猪
  • fcitx输入法可以运行但不能打字

    今天想把ibus换成fcitx,弄了半天,发现右下脚显示了输入法的配置图标,但是死活打不了字。

    超级大猪
  • 关于图片懒加载的几种方案

    clientTop,offsetTop,clientHeight 以及 scrollTop 各种关于图片的高度作比对

    夜尽天明
  • 【优化】215-优化Web端大量图片同时加载卡顿问题

    由于业务的需要,笔者最近需要实现一个大量图片同时加载的需求。在实现这个需求的过程中,笔者遇到了很多的坑,也总结了一些优化方案。这里将笔者使用或准备使用的优化方案...

    pingan8787
  • shell入门系列(9)grep

    [外链图片转存失败(img-Us3HVPA2-1563242272153)(http://ww1.sinaimg.cn/large/006jIRTegy1fzd...

    suveng
  • AsyncTask和Handler对比

    1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操...

    欢醉
  • Linux下升级python2.7到python3.5

    这里显示的Python版本是2.7,而不是刚下载的3.5。这是因为python被软连接到python2.7了。可以在/usr/bin下查看python link...

    刺_猬
  • 一些获取 SVN 版本提交记录信息的库

    君赏
  • 用Python生成抖音字符视频!

    AiTechYun

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动