首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >C#笔记:异步的简单实现

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

作者头像
超级大猪
发布于 2019-11-22 09:46:40
发布于 2019-11-22 09:46:40
9310
举报
文章被收录于专栏:大猪的笔记大猪的笔记

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

代码语言:javascript
复制
private static Task<string> DoSomeThing(int second)
        {
            return Task.Run(() =>
            {
                Thread.Sleep(second * 1000);
                return "延时了" + second + "秒";
            });
        }

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

代码语言:javascript
复制
private static async void DoAndCallBack(int second)
        {
            string result = await DoSomeThing(second);
            Console.WriteLine(result);
            Console.WriteLine("这次是真的完成了");
        }

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

代码语言:javascript
复制
DoAndCallBack(3);
Console.WriteLine("异步调用完毕,不必管它,继续做一些其它的事");

大脸兔大脸兔长胡须。 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-02-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档