增加了两个新关键字async和await它们可用于基于任务的异步模式(TAP)

什么是基于任务的异步模式呢?

这就要说到.NET 4.0新增加的Task类型,它可以让我们更加方便的进行多线程开发。它提供了很多方法像开启任务(Start,Run方法等),延续任务(ContinueWith),等待任务(Wait,WaitAll,WaitAny),取消任务(CancellationToken),延迟执行(Delay),条件执行(WhenAll,WhenAny)等。

通常能够使用async和await的方法总是返回Task<T>类型,下面的例子是Redis命令中一个判断key是否存在的异步方法:

Task<bool> KeyExistsAsync(RedisKey key, CommandFlags flags = CommandFlags.None);

该方法返回的是一个Task<bool>类型,我是这样封装它的:

        /// <summary>/// 判断Key是否存在/// </summary>/// <param name="key"></param>/// <param name="db"></param>/// <returns></returns>public async Task<bool> KeyExistsAsync(string key,int db){return await RedisManager.ReadDataBase(db).KeyExistsAsync(key);}

最终调用的例子如下:

            RedisCommand command = new RedisCommand();var flag = command.KeyExistsAsync("city", 1).Result;

.NET 4.5 的另一个新特性是 Zip 压缩改进,可减少压缩文件的大小,进而可以减轻网络带宽的压力,例子如下:

        /// <summary>/// 压缩字节数组/// </summary>/// <param name="str"></param>public static byte[] Compress(byte[] inputBytes){using (MemoryStream outStream = new MemoryStream()){using (GZipStream zipStream = new GZipStream(outStream, CompressionMode.Compress, true)){zipStream.Write(inputBytes, 0, inputBytes.Length);zipStream.Close(); //很重要,必须关闭,否则无法正确解压return outStream.ToArray();}}}/// <summary>/// 解压缩字节数组/// </summary>/// <param name="str"></param>public static byte[] Decompress(byte[] inputBytes){using (MemoryStream inputStream = new MemoryStream(inputBytes)){using (MemoryStream outStream = new MemoryStream()){using (GZipStream zipStream = new GZipStream(inputStream, CompressionMode.Decompress)){zipStream.CopyTo(outStream);zipStream.Close();return outStream.ToArray();}}}}

.NET Framework各个版本(4.5)相关推荐

  1. .net Framework各个版本之间的发展

    原文:.net Framework各个版本之间的发展 上个星期看到了.NET 4.0框架退休日期逐渐临近文章,发现自己一直在使用NET  FrameWork,身为一个NET程序员,里面大概的区别自己还 ...

  2. cygwin-1.7 离线安装包_.NET Framework所有版本微软官方下载地址

    许多应用程序的运行需要依赖Microsoft .NET Framework,而发展到今天,.NET Framework的版本已有很多,从新到旧包括: .NET Framework 4.8 .NET F ...

  3. .NET Framework 各版本介绍和下载链接汇总

    一..NET Framework 版本介绍 自2000年6月22日微软向全球宣布自己的.NET战略,到现在已经十年多了.作为.NET战略的基础,Microsoft .NET Framework 也已经 ...

  4. .NET Framework 不同版本之间区别

    什么是.NET Framework? .NET Framework又称 .Net框架.是由微软开发,一个致力于敏捷软件开发(Agile software development).快速应用开发(Rap ...

  5. .Net Framework 各个版本新特性总结 (一)

    .Net Framework 4.5 新特性 最近面试时又看到有问.Net Framework 新特性的问题,一时被问到了.平时也是拿起来就用,新版本出来了,新特性也就是瞄一眼,也没去仔细查看.这次干 ...

  6. .NET Framework 各版本区别

    .NET Framework 1.1 自1.0版本以来的改进: 自带了对mobile asp .net控件的支持.这在1.0版本是以附加功能方式实现的,现在已经集成到框架的内部.安全方面的变更 - 使 ...

  7. xlwt什么版本支持xlsx的版本_Spring Framework Versions版本支持说明

    为了能够对后续翻译做铺垫还是做一个支持的简单说明翻译.对历史版本有个大概了解. 1.Spring 支持版本 1)5.2.x是Spring最新的产品线(官方在2019年9月底正式公布). 2)5.1.x ...

  8. java库net2.0下载_.NET Framework各版本独立下载.NET Framework 3.5下载.NET Framework 2.0下载...

    Microsoft .NET Framework 4.5(在线安装 x86_x64)下载地址:点击这里! ----------------------------------------------- ...

  9. visual studio如何修改c++项目的.net framework框架版本

    一. 修改项目文件 在 Visual Studio 的"解决方案资源管理器"中,打开项目的快捷菜单,然后选择"卸载项目". 这将为你的项目卸载项目文件 (.vc ...

  10. 简单概述 .NET Framework 各版本区别

    目前已发行的版本有1.0.1.1.2.0.3.0.3.5.4.0.4.5(及4.5.1.4.5.2).4.6(及4.6.1). 1.0版本:最初的.net framework版本,作为一个独立的工具包 ...

最新文章

  1. GraphQL和REST对比时需要注意些什么
  2. 17个改变世界的数学公式,马斯克点赞
  3. oracle取本月最后一天是星期几_Oracle取得本月、本年第一天和最后一天
  4. 【小白学习C++ 教程】十一、C++类中访问修饰符
  5. jbpm4.4+ssh配置
  6. linux 线程同步消息队列,Linux 多线程同步之消息队列
  7. 【大型网站运维之道 天道 人道 运维之道】
  8. failed to read artifact descriptor for xx
  9. 字符串转换成整数 php,php如何将字符串转为整数
  10. 【报告分享】2020中国电商直播粉丝价值研究报告.pdf(附下载链接)
  11. 使用Scrapy,帮你快速抓取网页数据(代码可下载)!
  12. Apache Struts ‘includeParams’安全绕过漏洞
  13. java gson解析json_Gson解析json数据(转)
  14. 怎么给计算机上锁键盘,想把笔记本电脑的键盘锁住,用外置键盘怎样做?
  15. linux下几款可用网盘对比
  16. double转换为二进制
  17. Win10隐藏状态栏图标的方法
  18. textField使用合集(附字体设置合集)
  19. MSP432蓝牙遥控小车
  20. mysql初始化数据库

热门文章

  1. VLAN间路由的配置
  2. 客户旅行地图教程 - 带15个示例
  3. Windows系统如何隐藏文件夹?
  4. AI 人工智能包含的领域方向
  5. css中滑轮中是如何做的,横向的网页如何实现鼠标滑轮横向移动?_html/css_WEB-ITnose...
  6. 【《Real-Time Rendering 3rd》提炼总结】完结篇:系列合集电子书PDF下载实时渲染知识网络图谱新系列预告
  7. java pdf与ofd文件相互转换
  8. PCL点云处理与关键点提取
  9. Python获取局域网IP(ping)
  10. CoreJava(第二章)Java基础