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

C#笔记:异步的简单实现

在.net4.5之后。为了让异步变的更人性化。引入了两个关键字 async 和await.将异步操作从一大堆 beginInvoke 和 endInvoke中解脱出来。 步骤更加的简单。 1、定义一个需要异步的操作,通常是很占时间的操作:

private static Task<string> DoSomeThing(int second)
        {
            return Task.Run(() =>
            {
                Thread.Sleep(second * 1000);
                return "延时了" + second + "秒";
            });
        }

注意:返回值必须为Task 2、定义一个异步函数,使用async标记,并在里面 await 需要异步的操作。

private static async void DoAndCallBack(int second)
        {
            string result = await DoSomeThing(second);
            Console.WriteLine(result);
            Console.WriteLine("这次是真的完成了");
        }

在主线程调用  DoAndCallBack 时,await操作并不会阻塞主线程。而且,编译器会自动侦测await的上下文,将其视为异步操作完毕后需要调用的内容(即callback)。 3、主函数中,只需要调用此异步函数,就能自动开始异步操作。

DoAndCallBack(3);
Console.WriteLine("异步调用完毕,不必管它,继续做一些其它的事");

大脸兔大脸兔长胡须。 

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • chrome 开启全局暗黑模式

    超级大猪
  • 技巧:配置samba使windows共享linux文件

    超级大猪
  • bisect 模块

    超级大猪
  • iOS 秒杀倒计时 从服务器获得时间戳秒杀开始和结束倒计时。

    +(NSArray *)getTwoDataMin:(NSString *)stamp1 andWith:(NSString *)stamp2{

    ZY_FlyWay
  • 转型产品经理必看 | 我是如何从程序员一步一步走向产品经理

    今天推荐这篇文章给大家,尤其是准备转型以及在转型路上的小伙伴们,希望对你们有帮助,文章比较长,但是值得一看。

    哲洛不闹
  • 依图产品一面加二面面经(攒人品贴)

    时间一天天过去,好像什么都没变,但当你某天回首,却发现一切怎么都不同了。——《生活大爆炸》

    牛客网
  • 四面受敌!ARM暂停与华为合作,芯片备胎计划还能执行么?

    继谷歌限制华为的安卓服务后,当地时间5月22日,BBC报道英国芯片设计商ARM刚刚宣布暂停与华为合作!

    大数据文摘
  • jquery链式调用 - 层级菜单示例

    jquery对象的方法会在执行完后返回这个jquery对象,所有jquery对象的方法可以连起来写:

    Devops海洋的渔夫
  • 弄懂事件委托

    当构建应用程序时,有时需要将事件监听器绑定到页面上的某些元素上,以便在用户与元素交互时执行某些操作。

    前端迷
  • log4j2.xml 的配置文件

    log4j2.xml 的配置文件放在classpath下就会被自动加载,其配置如下:

    一个会写诗的程序员

扫码关注云+社区

领取腾讯云代金券