微软正式发布了Microsoft.Bcl.Async
微软发布了Microsoft.Bcl.Async的最终版本,参看博客Microsoft.Bcl.Async is Now Stable。该包允许开发者在.NET 4、Silverlight 4和Windows Phone 7.5使用C# 5和VB中的异步特性。该包由三个库组成:Microsoft.Bcl、Microsoft.Bcl.Async和Microsoft.Bcl.Build。由于使用了程序集统一的方式,解决方案中的所有工程都必须引用这三个库。
C#发展至今,已经从最初的1.0到了5.0版本,不如来回顾一下各个版本都带来了什么:
- 1.0版本 - 基本C#语法。
- 2.0版本 - 泛型的支持,CLR进行了升级,从根本上支持了运行时泛型。
- 3.0版本 - LINQ,添加了
from
/join
等类SQL关键字,添加了扩展函数,添加了编译期动态类型var关键字。 - 4.0版本 - dynamic关键字,CLR进行升级,加入DLR,开始对动态进行友好的支持。同时加入动态参数、参数默认值、泛型协变等特性。
- 5.0版本 - async/await关键字,将异步变得更为简单。
async/await 将异步的编程模型统一为同步模型,简化开发复杂度,提升生产效率。微软正式发布了Microsoft.Bcl.Async的最终版本,这让.NET4里头也可以用上async/await,而不需要把项目更改为.net 4.5.
具体的实践和原理,可以看一看[C# 5.0 vNext - New Asynchronous Pattern],不过这篇文章里的 SwitchTo 方法已经被移除了,理由这样很危险。具体可以参看StackOverflow的讨论 Why was “SwitchTo” removed from Async CTP / Release?
相关文章:
Best Practices for c# async/await
http://www.codeproject.com/Articles/518856/Task-Parallel-Library-and-async-await-Functionalit
http://weblogs.asp.net/dixin/archive/2012/11/02/understanding-c-async-await-1-compilation.aspx
http://blog.zhaojie.me/2012/04/exception-handling-in-csharp-async-await-1.html
http://blog.zhaojie.me/2012/04/exception-handling-in-csharp-async-await-2.html
- 参考基因组没有,经费也没那么多,怎么办?
- .Net下SQLite的DBHelp
- 数据库进程间通信解决方案之MQ
- 【学术】算法交易的神经网络:强化经典策略
- java.util.logging 例子
- WPF命令(Command)介绍、命令和数据绑定集成应用
- lncRNA实战项目-第六步-WGCNA相关性分析
- 【项目】Github上的一个简单项目:用人工智能预测大学录取概率
- lncRNA实战项目-第五步-差异表达的mRNA和lncRNA
- WPF--模板选择
- 高级运维工程师面试题(更新中)
- Nginx rewrite 获取问好“?”后面的参数
- 微信公众平台开放JS-SDK(微信内网页开发工具包)
- 数据库与图片完美解决方案
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [PHP] 简单工厂模式-创建型设计模式
- [PHP] 单例模式-创建型设计模式
- [PHP] 静态工厂模式-创建型设计模式
- [PHP] 适配器模式-结构型设计模式
- [PHP] 使用curl扩展POST或者PUT时数据不全和连接中断的排查
- [PHP] 桥接模式-结构型设计模式
- [PHP] 组合模式-结构型设计模式
- [GO-FLY] GO-FLY客服实现浏览器消息提示音
- [PHP] 数据映射器模式-结构型设计模式
- [GO] 变参函数-GO中函数传递变长参数
- PHP+Redis 商品超卖
- Linux驱动开发入门 demo
- ES6 的内置对象扩展
- ES6相关概念及新增语法
- 支持多JDK版本下运行的Jar文件打包方式