使用异步等待.NET 4
我目前正开始创建一个应用程序,它将从C#5的异步等待功能中获益很多。但我不确定要使用哪个版本的VS和异步运行时。
看看操作系统的流行图表,我还需要三年左右的时间来支持WindowsXP。看起来,.NET 4.5只在较新版本的Windows上运行,因此我需要针对.NET 4.0。开发机器使用Windows 7,因此使用较新版本的VS并不是问题。
现在我需要首先选择一个编译器来完成这个任务:
- VS 2010与AsyncCTP
- VS 2012预览(以及最后一次到达),将目标设置为.NET 4.0
- Mono(看起来2.12有异步等待,我更喜欢/我习惯于VS而不是作为IDE的MonoDe信封)
哪一个有较少的代码生成错误?望着乔恩·斯基特的博客VS 2012预览使用的代码生成器从来没有比CTP。
更重要的是,使用哪个运行时?
VS 2012是否包含用于.NET 4的可再发行异步运行时?
通过引用AsyncCTP运行时,我成功地编译了带有预览的代码。但由于CTP有奇怪的许可条件,这看起来并不是一个好的长期解决方案。
还是应该使用第三方实现?也许Mono有一个?
为了分发库,我更喜欢将DLL放在与应用程序相同的目录中,而不是某种安装程序。
我也希望我的二进制文件能够在Mono+Linux/MacOS上工作,而不做任何更改。因此,运行时应该兼容任何Mono(可能是2.12)内置的内容,或者允许在非Windows操作系统上使用。