由于工作限制,我需要在不久的将来继续使用Visual Studio 2010。与此同时,我在个人编码中一直在学习Async。最新的Async CTP是否与C#5.0的Async语言功能完全一致?并且正在安装Async CTP正确使用VS2010的Async吗?
答案 0 :(得分:11)
Async CTP是在Visual Studio 2010中使用async
的唯一方法。但是,它不是async
进入.NET 4.5 / Visual Studio 2012,CTP中的一些错误已在最终版本中修复。根据CTP的自述文件,您不会在Visual Studio 2010中获得这些错误修复:
按“原样”许可证说明
虽然Async CTP许可证不会阻止您在生产环境中使用它,但我们建议您不要这样做。此CTP的目标仅仅是收集有关我们的异步设计的反馈。我们没有设计或构建它以用于生产环境,也没有像在生产环境中使用那样彻底地进行测试,我们认为它有太多的缺陷适合在生产环境中使用。我们非常感谢有关Async CTP的反馈,但我们不打算对Async CTP本身进行任何修复:我们所做的修复只会出现在最终支持的已发布产品中。
如果您绝对需要VS 2010,我会尝试首先安装Async CTP,然后安装.NET 4.5(运行时和SDK)。在Visual Studio中进行开发,但使用独立编译器进行构建。
答案 1 :(得分:3)
考虑到.NET 4.5在.NET 4上安装的方式以及可能出现的挑战,我会尽量将您的工作环境与个人开发环境分开。
你可以在同一台机器上安装VS2010和VS2012,我建议过度使用异步CTP:
但是,我认为如果可能的话,在VM或单独的机器上进行开发会更安全。
最不吸引人的选择是使用CTP,IMO - 说实话,我只能看到这方面的风险。
答案 2 :(得分:3)
尽管关键字相同,但Async CTP与最终的C#5.0实现并不完全一致。
如果您真正的业务需求是生成可以在.NET 4.0上运行的应用程序,那么推荐的方法是使用VS2012和async targeting pack(可通过NuGet获得)。
在此配置下,您的开发计算机具有.NET 4.5和VS2012,但从您的解决方案版本生成的二进制文件将与.NET 4.0兼容。
这样可以最大限度地支持异步语言功能,因为VS2012 +异步定位包为您提供完全相同的官方编译器,并且高于CTP质量。