async/awaitkeywordsnotavailablein.net4.0我想在C#4.0中使用async/await,我安装了如下软件包:http://www.nuget.org/packages/Microsoft.Bcl.Async/问题是我没有可用的async/await关键字。我正在使用带有SP1的VS2010。谢谢。没有比JonSkeet更好的答案了。唯一受支持的方法是使用VS2012和Microsoft.Bcl.Async。VS2010很难用async/await。有一个旧的AsyncCTP包(其中有许多永远不会修复的错误)作为VS2010的“添加”/“部分替换”。但是,该软件包从未与VS2010更新配合使用。因此,您必须首先找到旧版CTP安装程序,安装一些VS更新,然后查看CTP是否有效。如果您已经安装了所有VS2010更新,则不会有任何发布CTP。我认为一旦找到可以安装工作CTP的更新情况,就可以安装其他更新。在完成所有这些工作之后,您仍然会得到一个有缺陷的异步(并且显然是未优化的)实现。或者,您可以按照JonSkeet的建议,使用Microsoft.Bcl.Async下载免费版本的VS2012Express,并获得完全支持的解决方案。Async/Await已在C#5.0和.NETFramework4.5中引入更多信息:使用Async和Await进行异步编程(C#和VisualBasic)使用async和await在C#5.0中进行异步编程如果您喜欢在企业中使用Framework4,还有其他解决方法。您可以使用允许您使用这些功能的NuGet包。要在没有.NETFramework4.5的情况下使用async/await,只需从NuGet包管理器安装它:安装包Microsoft.Bcl.Async从NuGetGallery中提取:该包使VisualStudio2012项目能够使用新的“async”和“wait”关键字。这个包还包括基于任务的扩展方法,允许使用一些现有的异步API和新的语言关键字。WindowsPhoneSilverlight8项目可以使用这个包来访问网络类型的异步扩展方法。我已经使用异步为.NET4.0应用程序编写了一个.NET4.5插件,令我惊讶的是它有效!我认为这是有效的,因为我安装了.NET4.5,它用.NET4.0和.NET4.5的更新版本替换了.NET4运行时。然后我的插件使用Assembly.Load(...)或类似的方式加载反射。我尝试了async/await和Environment.CurrentManagedThreadId(.NET4.5属性),两者都有效。因此,如果安装.NET4.5是一个选项(即不支持WindowsXP),您可以通过反射加载应用程序的.NET4.5部分来使用混合,可能让4.5部分实现4.0接口。但是,如果您自己编写应用程序,更简单的解决方案是为整个项目切换到.NET4.5。以上就是C#学习教程的全部内容:async/await关键字在.net4.0中是没有的。代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
