在.net 4上使用async-await

我目前正在开始创建一个将从C#5的async-await功能中受益匪浅的应用程序。但是我不确定要使用哪个版本的VS和异步运行时。

查看OS流行度图表,我需要再支持Windows XP三年左右。看起来.net 4.5仅在较新版本的Windows上运行,因此我需要定位.net

4.0。开发机器使用Windows 7,因此使用较新版本的VS没问题。

  • 带有AsyncCTP的VS2010
  • VS2012预览版(到达后即为最终版本),将目标设置为.net 4.0
  • Mono(看起来像2.12具有async-await,我更喜欢/ am习惯使用VS而不是MonoDevelop作为IDE)

哪一个代码错误较少?在Jon

Skeet的博客中,VS2012 Preview使用的永远不会是CTP的代码生成器。

VS2012是否包含可与.net 4一起使用的可重新分发的异步运行时?

通过引用AsyncCTP运行时,我设法通过预览来编译代码。但是,由于CTP具有奇怪的许可条件,因此这似乎不是一个好的长期解决方案。

还是应该使用第三方实现?也许单声道有一个?

为了分发库,我更喜欢将dll与应用程序放在同一目录中,而不是某种安装程序。

如果我的二进制文件可以在mono + Linux /

MacOS上运行而无需更改,我也很喜欢。因此,运行时应该与内置的mono(可能为2.12)兼容,或者允许在非Windows操作系统上使用。

回答:

Microsoft 通过Nuget发布了Async

Targeting

Pack(Microsoft.Bcl.Async),以替代AsyncCTP。

您可以在此处了解更多信息:http :

//blogs.msdn.com/b/bclteam/archive/2013/04/17/microsoft-bcl-async-is-now-

stable.aspx。

您可以在此处阅读有关先前版本的信息:http : //blogs.msdn.com/b/lucian/archive/2012/04/24/async-

targeting-pack.aspx。

由于此软件包已得到正式支持,因此我现在认为,针对XP +异步的最佳选择是使用Visual Studio 2012 + C#5 +异步定向包。

但是,如果您需要以.NET 3.5为目标,则仍然可以使用(my)AsyncBridge for .NET

3.5。

以上是 在.net 4上使用async-await 的全部内容, 来源链接: utcz.com/qa/424109.html

回到顶部