C# VS 2012发布后,如何在VS 2010中使用Async?

C# VS 2012发布后,如何在VS 2010中使用Async?,c#,visual-studio-2010,visual-studio-2012,async-await,async-ctp,C#,Visual Studio 2010,Visual Studio 2012,Async Await,Async Ctp,由于工作限制,我需要在不久的将来继续使用VisualStudio2010。同时,我在我的个人编码中学习了异步。最新的异步CTP是否与C#5.0的异步语言功能完全一致?安装Async CTP是将Async与VS2010一起使用的正确方法吗 异步CTP是在VisualStudio2010中使用Async的唯一方法。然而,并不是async使其进入.NET4.5/VisualStudio2012,CTP中的几个错误已经在最终版本中修复。根据CTP的自述文件,您将无法在Visual Studio 2010

由于工作限制,我需要在不久的将来继续使用VisualStudio2010。同时,我在我的个人编码中学习了异步。最新的异步CTP是否与C#5.0的异步语言功能完全一致?安装Async CTP是将Async与VS2010一起使用的正确方法吗

异步CTP是在VisualStudio2010中使用
Async
的唯一方法。然而,并不是
async
使其进入.NET4.5/VisualStudio2012,CTP中的几个错误已经在最终版本中修复。根据CTP的自述文件,您将无法在Visual Studio 2010中修复这些错误:

关于“原样”许可证的注意事项

虽然Async CTP许可证并不阻止您在生产环境中使用它,但我们建议您不要这样做。本CTP的目标仅是收集有关我们预期异步设计的反馈。我们没有设计或构建用于生产环境的产品,也没有像在生产环境中使用所需的那样对其进行彻底的测试,我们认为它有太多的缺陷,不适合在生产环境中使用。我们非常感谢对Async CTP的反馈,但我们不打算对Async CTP本身进行任何修复:我们所做的修复只会出现在最终支持的发布产品中


如果您绝对需要VS2010,我将尝试首先安装异步CTP,然后安装.NET4.5(运行时和SDK)。在Visual Studio中开发,但使用独立编译器进行构建。

考虑到.NET 4.5安装在.NET 4之上的方式,以及可能带来的挑战,我会尽量将您的工作环境与个人开发环境分离开来

您可以在同一台机器上安装VS2010和VS2012,我建议您在使用异步CTP时:

  • 减少工作环境污染
  • C#5的最新版本
  • 使用VS 2012的所有好处
然而,我认为如果可能的话,在VM或单独的机器上开发会更安全


最没有吸引力的选择是使用CTP,IMO——老实说,我只能看到这方面的风险。

异步CTP与最终的C#5.0实现不完全一致,尽管关键字相同

如果您真正的业务需要是生成一个可以在.NET 4.0上运行的应用程序,那么推荐的方法是将VS2012与(可通过NuGet获得)一起使用

在此配置下,您的开发机器具有.NET 4.5和VS2012,但是从解决方案生成中生成的二进制文件将与.NET 4.0兼容


这导致了对异步语言功能的最全面支持,因为VS2012+异步目标包为您提供了完全相同的官方编译器,并且比CTP质量更高。

感谢您提供的信息和通知。除了bug之外,您知道异步“API”在两者之间是否一致吗?@ach某些已成为.NET Framework 4.5一部分的部分不属于.NET Framework 4,因此作为单独的DLL提供,您需要随应用程序一起分发。一些函数的名称也发生了变化,最明显的可能是
TaskEx.Run(…)
(异步CTP)与
Task.Run(…)
(.NET Framework 4.5)。非常感谢,非常感谢。@hvd我不明白,如果我安装了2010和4.5.1(!),我能使用这个CTP使用Async Wait吗?(无需担心…?)@RoyiNamir好吧,为此,我想你可以安装VS2012/VS2013的快速版,用它来更新项目的一部分,使之使用
async
,并向你的老板展示改进之处。:)谢谢乔恩提供的信息。我的工作和娱乐环境是分开的,我希望能够在我的VS2010工作环境中使用这些新功能。但我想我会听从你的建议,在生产中使用异步功能之前等待VS2012的安装。这是一个很好的信息!非常感谢。目前的问题是,我的公司更新开发软件的速度很慢,所以我暂时无法使用VS2010。