async/await异步功能简介
从4.0版本开始.NET引入并行编程库,用户能够通过这个库快捷的开发并行计算和并行任务处理的程序。在4.5版本中.NET又引入了Async和Await两个新的关键字,在语言层面对并行编程给予进一步的支持,使得用户能以一种简洁直观的方式实现并行编程。因为在很多文档里针对Async和Await这两个关键字的使用都被称为异步编程,为了更符合大众的阅读习惯,我们使用异步编程这个叫法,意思上和并行编程完全一样。
关于Async和Await异步编程的功能说明和使用介绍,MSDN上有详细文档,链接如下:
http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx
其它地方也可以搜索到很多相关文章,这里就不再赘述,
本文主要介绍的是如何在我们较早的.NET4.0版本使用Async/Await
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。由于使用了程序集统一的方式,解决方案中的所有工程都必须引用这三个库
安装
我使用的是visual studio 2012, 使用uget来进行安装
打开Nuget,搜索async关键字,我们可以看到第一个就是我们需要的,点击安装即可
或者直接在PM命令中输入:
PM> Install-Package Microsoft.Bcl.Async
可能会碰到的问题:
出现编译异常
那需要你检查一下各项目中是否都有引用。由于使用了程序集统一的方式,解决方案中的所有工程都必须引用这三个库。
使用异常
如果异常信息是“Message : Could not load file or assembly ‘System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes’ or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)”,
那需要你去微软官网下载.net4.0的KB2468871补丁来安装。