Fork me on GitHub

微软正式发布了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。由于使用了程序集统一的方式,解决方案中的所有工程都必须引用这三个库。

image

image

C#发展至今,已经从最初的1.0到了5.0版本,不如来回顾一下各个版本都带来了什么:

  1. 1.0版本 - 基本C#语法。
  2. 2.0版本 - 泛型的支持,CLR进行了升级,从根本上支持了运行时泛型。
  3. 3.0版本 - LINQ,添加了from / join等类SQL关键字,添加了扩展函数,添加了编译期动态类型var关键字。
  4. 4.0版本 - dynamic关键字,CLR进行升级,加入DLR,开始对动态进行友好的支持。同时加入动态参数、参数默认值、泛型协变等特性。
  5. 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

async 与 await 在 Web 下的应用

那些年,我们一起追寻的异步编程[系列]

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://weblogs.asp.net/dixin/archive/2012/11/08/understanding-c-async-await-2-awaitable-awaiter-pattern.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

posted @ 2013-04-27 22:35 张善友 阅读(...) 评论(...) 编辑 收藏