27

我想在.net 4.0 中创建的项目中使用异步关键字。

如果我去 nuget.org 网站并寻找“异步”,我会得到很多结果,但主要是我得到这个:

Visual Studio Async CTP(版本 3,非官方)0.3.0

AsyncAwaitCTP 1.0.0

他们两者之间的区别是什么?

4

2 回答 2

51

您需要Microsoft.Bcl.Async包。这是一个正确发布的、稳定的非 CTP 包。这也需要 VS2012,因为需要更新的编译器才能理解asyncawait.

从理论上讲,可以使用 VS2010 中的旧工具和旧 CTP 库,我强烈建议您不要使用 - 它有错误,而且安装本身就是一个失败者。

于 2013-10-17T08:41:00.890 回答
1

我已经async为 .NET 4.0 应用程序编写了一个 .NET 4.5 插件,令我惊讶的是,这确实有效!

我认为这很有效,因为我安装了 .NET 4.5,它用更新的运行时替换了 .NET 4 运行时,它同时用于 .NET 4.0 和 .NET 4.5。然后我的插件加载了反射使用Assembly.Load(...)或类似的。我尝试了两者async/awaitEnvironment.CurrentManagedThreadId(.NET 4.5 属性),并且都有效。

于 2014-11-19T09:47:59.587 回答