.NET Framework各个版本(4.5)
增加了两个新关键字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)相关推荐
- .net Framework各个版本之间的发展
原文:.net Framework各个版本之间的发展 上个星期看到了.NET 4.0框架退休日期逐渐临近文章,发现自己一直在使用NET FrameWork,身为一个NET程序员,里面大概的区别自己还 ...
- cygwin-1.7 离线安装包_.NET Framework所有版本微软官方下载地址
许多应用程序的运行需要依赖Microsoft .NET Framework,而发展到今天,.NET Framework的版本已有很多,从新到旧包括: .NET Framework 4.8 .NET F ...
- .NET Framework 各版本介绍和下载链接汇总
一..NET Framework 版本介绍 自2000年6月22日微软向全球宣布自己的.NET战略,到现在已经十年多了.作为.NET战略的基础,Microsoft .NET Framework 也已经 ...
- .NET Framework 不同版本之间区别
什么是.NET Framework? .NET Framework又称 .Net框架.是由微软开发,一个致力于敏捷软件开发(Agile software development).快速应用开发(Rap ...
- .Net Framework 各个版本新特性总结 (一)
.Net Framework 4.5 新特性 最近面试时又看到有问.Net Framework 新特性的问题,一时被问到了.平时也是拿起来就用,新版本出来了,新特性也就是瞄一眼,也没去仔细查看.这次干 ...
- .NET Framework 各版本区别
.NET Framework 1.1 自1.0版本以来的改进: 自带了对mobile asp .net控件的支持.这在1.0版本是以附加功能方式实现的,现在已经集成到框架的内部.安全方面的变更 - 使 ...
- xlwt什么版本支持xlsx的版本_Spring Framework Versions版本支持说明
为了能够对后续翻译做铺垫还是做一个支持的简单说明翻译.对历史版本有个大概了解. 1.Spring 支持版本 1)5.2.x是Spring最新的产品线(官方在2019年9月底正式公布). 2)5.1.x ...
- java库net2.0下载_.NET Framework各版本独立下载.NET Framework 3.5下载.NET Framework 2.0下载...
Microsoft .NET Framework 4.5(在线安装 x86_x64)下载地址:点击这里! ----------------------------------------------- ...
- visual studio如何修改c++项目的.net framework框架版本
一. 修改项目文件 在 Visual Studio 的"解决方案资源管理器"中,打开项目的快捷菜单,然后选择"卸载项目". 这将为你的项目卸载项目文件 (.vc ...
- 简单概述 .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版本,作为一个独立的工具包 ...
最新文章
- GraphQL和REST对比时需要注意些什么
- 17个改变世界的数学公式,马斯克点赞
- oracle取本月最后一天是星期几_Oracle取得本月、本年第一天和最后一天
- 【小白学习C++ 教程】十一、C++类中访问修饰符
- jbpm4.4+ssh配置
- linux 线程同步消息队列,Linux 多线程同步之消息队列
- 【大型网站运维之道 天道 人道 运维之道】
- failed to read artifact descriptor for xx
- 字符串转换成整数 php,php如何将字符串转为整数
- 【报告分享】2020中国电商直播粉丝价值研究报告.pdf(附下载链接)
- 使用Scrapy,帮你快速抓取网页数据(代码可下载)!
- Apache Struts ‘includeParams’安全绕过漏洞
- java gson解析json_Gson解析json数据(转)
- 怎么给计算机上锁键盘,想把笔记本电脑的键盘锁住,用外置键盘怎样做?
- linux下几款可用网盘对比
- double转换为二进制
- Win10隐藏状态栏图标的方法
- textField使用合集(附字体设置合集)
- MSP432蓝牙遥控小车
- mysql初始化数据库