Asynchronous 如何在针对.net 4.0的项目中使用异步关键字

Asynchronous 如何在针对.net 4.0的项目中使用异步关键字,asynchronous,.net-4.0,c#-5.0,async-await,Asynchronous,.net 4.0,C# 5.0,Async Await,我想在.NET4.0中创建的项目中使用异步关键字 如果我去nuget.org网站查找“async”,我会得到很多结果,但主要是: 它们之间的区别是什么?您想要软件包。这是一个正确发布的、非CTP的、稳定的软件包。这也需要VS2012,因为需要更新的编译器来理解async和wait 从理论上讲,人们可以使用VS2010的旧工具和旧CTP库,我强烈建议您不要使用,因为它有bug,安装本身就是成功或失败。我已经为.NET 4.0应用程序编写了一个.NET 4.5插件,使用async,令我惊讶的是,

我想在.NET4.0中创建的项目中使用异步关键字

如果我去nuget.org网站查找“async”,我会得到很多结果,但主要是:

它们之间的区别是什么?

您想要软件包。这是一个正确发布的、非CTP的、稳定的软件包。这也需要VS2012,因为需要更新的编译器来理解
async
wait


从理论上讲,人们可以使用VS2010的旧工具和旧CTP库,我强烈建议您不要使用,因为它有bug,安装本身就是成功或失败。

我已经为.NET 4.0应用程序编写了一个.NET 4.5插件,使用
async
,令我惊讶的是,这确实有效


我认为这是可行的,因为我安装了.NET4.5,它用一个更新的运行时替换了.NET4运行时,该运行时同时用于.NET4.0和.NET4.5。然后,我的插件使用
Assembly.Load(…)
或类似工具加载了反射。我尝试了
async/await
Environment.CurrentManagedThreadId
(一个.NET 4.5属性),两种方法都成功了。

我正在使用VS2010。如果我没有错的话,这只适用于VS2012,不适用于VS2010。是吗?@lvaroGarcía,你可以很容易地尝试它。@lvaroGarcía:nuget软件包可能会安装,但你不能使用async/Wait,因为这是一种语言功能。虽然您仍然可以使用CTP,但我强烈建议您不要使用,因为它有bug。你真的应该咬紧牙关,升级到VS2012。我已经安装了软件包,并且有一个.NET 4.0的版本,但是关键字async不可用。我需要安装其他包吗?@阿尔瓦罗加西亚:是的,包是稳定的,但你没有抓住要点——我不相信它会改变编译器,这是你使用异步/等待所需要的。该软件包只提供了一些库,允许您在从VS2012以.NET 4为目标时使用async/await。在这里区分库支持和语言支持很重要。请重新打开问题:问题是“如何在以.Net 4.0为目标的项目中使用异步关键字”,这不是离题。这个问题不是“请为任务推荐一个库”;问题是“我怎样才能完成任务”等等。