【问题标题】:Will VS 2010 allow me to use the new async and await keywords in C#?VS 2010 是否允许我在 C# 中使用新的 async 和 await 关键字?
【发布时间】:2012-04-20 04:34:48
【问题描述】:

当新的 async 和 await 功能上线时,我能否在 Visual Studio 2010 中使用它们,还是需要 Visual Studio?

我要问的是:Microsoft 会在 VS 2010 和 VS 11 之间保持语言功能对等吗? CTP 是一个预览版,无论是否可靠,我们的客户不希望我们使用被认为不完整或未经测试的技术 - 所以尽管获得了许可,我还是无法使用它。

我的雇主购买 VS 11,所以我需要知道我是否在浪费时间编写异步和等待代码。

【问题讨论】:

  • 使用异步 CTP 有什么问题?它在第三版中非常可靠。
  • @duluca 没什么问题,只是文化/政治问题。 =(
  • @ErikForbes - 假设这意味着“需要官方支持”,那么这将意味着 VS11,抱歉。
  • @ErikForbes 是的,我明白了,但是编写 Async CTP 的团队(至少是它的领导者)自己发明了 C# - 所以如果我相信任何类型的不受支持的代码,这将是'那个'。
  • @duluca 不幸的是,这不是信任问题。

标签: c# .net visual-studio async-await


【解决方案1】:

您可以在 2010 年使用它们。我在 2010 年运行了开发者预览版,没有出现任何问题。然而,Resharper 无法识别这些关键字,但他们已经(或将会)在以后的版本中对其进行补救。

【讨论】:

【解决方案2】:

只需安装Async CTP,在您的项目中引用该dll,您就可以使用async 和await。或者安装 VS11 并直接与 .Net 4.5 一起使用。如果您想尽快在生产中使用它,我会选择第一个选项。

编辑:对于仍在查找此内容的任何人。如果此时您仍然有一个 .Net 4.0 应用程序并且想要使用 .Net 4.5 的所有异步功能,那么有一个名为 Microsoft Async 的 Nuget 包。你只需要至少有 Visual Studio 2012。有了这个包,当你已经有 VS2012 时,你就不必费心安装 Async CTP。 (此外,与 VS2012 并排安装 Async CTP 并不能从我的尝试中真正奏效)

【讨论】:

  • @shriek Async CTP ddl 叫什么,我已经安装但找不到 ddl?
  • @Pomster 如果您安装了旧的 Async CTP,则不需要添加任何 dll,您可以立即在 Visual Studio 中使用 async 和 await。
【解决方案3】:

由于变化的范围,它不太可能回到 VS2010 作为正式版本。

不过,正如其他人所评论的,您可以使用 CTP。但是,如果您担心它得到官方支持,那几乎肯定意味着使用 VS11(Beta 版具有上线许可证,FWIW)

【讨论】:

    【解决方案4】:

    据我了解,新功能将成为 C# 5.0 的一部分。 根据框架和编程语言的过去版本,它们与通常与此一起发布的新工作室版本一起提供。

    然而,过去我们可以通过引用保存它们的库来使用较新的 C# 功能,因此这可能通过引用所需的东西成为可能。

    【讨论】:

    • 仅仅引用一个库不会给你任何新的语言特性,你需要为此修改编译器。
    【解决方案5】:

    现在,异步 CTP 允许您在 Visual Studio 2010 中使用新的 awaitsasync 语法。在演示新功能时,语言团队通常会为当前版本的 Visual Studio 提供 CTP。这是让开发人员进行试验并向语言团队提供反馈的好方法。

    但是,对于最终版本,新语言功能通常仅可用于下一版本的 Visual Studio(在本例中为 Dev11)。它们不会反向移植到以前版本的 Visual Studio。

    当前版本和下一个最终版本中的这种 CTP 模式在 LINQ 之前已经发生过。几乎可以肯定会重复awaits

    【讨论】:

    • 这也是我所期望的,但很高兴看到 Microsoft 对此进行一些官方沟通,以便我可以与管理层分享。
    • @ErikForbes 如果我正在与管理层沟通,我的信息是,在 C# 或任何其他语言中从未发生过将新语言功能的 IDE 支持向后移植到 Visual Studio 的先前版本。在微软的多个团队中这样做需要付出相当大的努力。如果发生这种情况,我会感到非常震惊。
    • 我也一样,但在没有微软声明的情况下,一切皆有可能。 =P
    • @JaredPar DLL 叫什么,我安装了 Async CTP 但找不到 ddl 叫什么。
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 2016-03-16
    • 2012-11-28
    • 2012-02-04
    • 2016-12-30
    相关资源
    最近更新 更多