首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在.net 4上使用异步等待

在.net 4上使用异步等待
EN

Stack Overflow用户
提问于 2012-02-02 18:11:30
回答 5查看 66.6K关注 0票数 137

我现在开始创建一个应用程序,它将从C# 5的异步等待功能中获益良多。但是我不确定使用哪个版本的VS和异步运行时。

看看操作系统的流行度图表,我还需要再支持Windows XP三年左右。看起来Windows4.5只能在新版本的.net上运行,所以我需要把目标对准.net 4.0。开发机器使用Windows7,因此使用较新版本的VS不是问题。

现在,我需要首先选择一个编译器来执行此操作:

带有AsyncCTP

  • VS2012预览版的
  • VS2010 (最终版),将目标设置为.net 4.0
  • Mono (看起来2.12具有异步等待功能,我更喜欢/习惯于使用VS而不是MonoDevelop作为集成开发环境)

哪一个有较少的代码生成错误?看一下Jon Skeet's blog,VS2012预览版使用的是never代码生成器,而不是CTP。

,更重要的是使用哪个运行时?

VS2012是否包含用于.net 4的可再分发异步运行时?

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

或者我应该使用第三方实现?也许mono有一个?

为了发行库,我更喜欢简单地将dll放在与应用程序相同的目录中,而不是某种安装程序。

如果我的二进制文件可以在mono+Linux/MacOS上运行而无需更改,我也会很高兴。因此,运行时应该与mono (可能是2.12)内置的任何东西兼容,或者允许在非windows OS上使用。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-27 12:14:10

微软通过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 + async的最佳选择是使用Visual Studio2012+ C#5 + Async targeting Pack。

如果你觉得有必要使用.NET 3.5,你仍然可以使用(我的) AsyncBridge for .NET 3.5

票数 106
EN

Stack Overflow用户

发布于 2012-03-26 22:55:50

如果您愿意考虑其他.Net语言,F#可以解决您的问题。它已经使用异步{}计算表达式多年了,甚至可以向后兼容.Net 2.0。最低要求是Windows XP SP3。运行时可以从here下载。

票数 24
EN

Stack Overflow用户

发布于 2012-04-09 18:40:05

可以使用VS12测试版通过async/await来瞄准.NET 4.0。

您需要将一些代码复制到提供编译器所依赖的类型的项目中。

详细信息here

编辑:我们采用了这种技术,并将其转换为一个名为AsyncBridge:https://nuget.org/packages/AsyncBridge的开源库

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9110472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档