• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > .net4.5使用async和await异步编程实例

.net4.5使用async和await异步编程实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了net4.5,net4.5官方下载,net4.5 64位,.net4.5下载,net4.5 32位下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

关于异步编程的简单理解:

在.NET4.5中新增了异步编程的新特性async和await,使得异步编程更为简单。通过特性可以将这项复杂的工作交给编译器来完成了。之前传统的方式来实现异步编程较为复杂,这样对于程序猿来说处理起来比较困难,调试也没那么方便,后续的维护工作也比较痛苦。

Async和Await关键字是C#异步编程的核心。通过使用这两个关键字,你可以使用.NET Framework 或 Windows Runtime的资源创建一个异步方法如同创建一个同步方法一样容易。

接下来通过VS2013 创建一个基于.NET4.5的控制台应用程序进行尝试。

先直接把简单的代码贴出来,如下所示

        /// <summary>
        /// 异步方法打印Hello World
        /// </summary>
        public async static void AsyncPrintHelloWorld()
        {
            Console.WriteLine("异步方法调用开始");
            Console.WriteLine("异步方法:Hello World");
            await Task.Delay(1000);
            Console.WriteLine("退出异步方法");
        }
</div>

上面注释中也有进行说明,第一个是同步方法,第二个是异步方法。同步方法可以通过Thread.Sleep(1000);暂停方法执行1000ms,同样的异步方法可以通过await Task.Delay(1000)来处理,而且在异步方法的声明中要加入async的关键字。

接下来是简单的调用

            Console.WriteLine("======异步方法调用=====");
            AsyncPrintHelloWorld();
            Console.WriteLine("异步方法调用结束");
            Console.ReadLine();
        }
</div>

F5执行后结果如下

通过执行结果可以很明显的看出,调用的同步方法里面是顺序执行的,而在异步方法中不一样,当通过Task.Delay(1000)暂停当前方法的时候,其方法外面的下面的方法会继续执行,也就是打印“异步方法调用结束”的语句。

可以发现使用了关键字之后,同步与异步的语法差别很小。随着.NET4.5的推出,许多类库和已有类库都将支持这种新型的异步语法,比如我正在学习的HTTPClient等等。

上面的演示只是通过简单的void的方法进行演示的,当然肯定可以带上返回值的额。

namespace Async
{
    class Program
    {
        static void Main(string[] args)
        {
            var ret = AsyncAdd("累死了,真想不出啥好的例子来调用");
            Console.WriteLine(ret.Result);
            Console.ReadLine();
        }
           

        ///异步打印传入的字符串
        public async static Task<string> AsyncAdd(string str)
        {
            string result = await PringString(str);
            return result;

        }

        public async static Task<string> PringString(string str)
        {
            return "Hello World" + str;
        }
    }
}
</div>

通过运行其实和同步的是一样的,只不过看看如何来定义异步方法的返回值,根据Task<T>来进行定义。

如果指定Task<TResult>为返回结果,那么这个方法必须包含return指定的TResult结果的语句。

一个async方法里通常包含一个或多个的对应的await操作符,但如果没有await表达式也不会导致编译错误。但如果调用一个async方 法,却不使用await关键字来标记一个挂起点的话,程序将会忽略async关键字并以同步的方式执行

总结

1.一个异步方法的声明中必然包含一个async的修饰符。

 2.异步方法的方法名可以以“Async”结尾。

 3.Task<TResult> 当你的方法有返回值时,那么TResult即返回值的类型

 4.方法通常至少包含一个await表达式。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • .net文件上传时实现通过文件头确认文件类型的方法
  • .net4.5使用async和await异步编程实例

相关文章

  • 2017-05-28C#中单例模式的三种写法示例
  • 2017-05-28C#网络编程基础之进程和线程详解
  • 2017-05-28C#特性-对象集合初始化器介绍
  • 2017-05-28C#基础继承和多态详解
  • 2017-05-28C#可空类型用法分析
  • 2017-05-28C#不同类型的成员变量(字段)的默认值介绍
  • 2017-05-28C#动态对象(dynamic)详解(实现方法和属性的动态)
  • 2017-05-28C#实现Dev Grid拖拽移动行的方法
  • 2017-05-28c#实现汉诺塔问题示例
  • 2017-05-28C#运算符重载用法实例分析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C# URL短地址压缩算法及短网址原理解析
    • OpenXml读写Excel实例代码
    • C# 获取IP及判断IP是否在区间
    • 用C#对ADO.NET数据库完成简单操作的方法
    • C#实现类似新浪微博长URL转短地址的方法
    • C#获取并修改文件扩展名的方法
    • C#根据年月日计算星期几的函数小例子
    • Question:基于C#连续赋值的面试题介绍
    • C#实现求一组数据众数的方法
    • c++指针使用形参改变实参的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有