【发布时间】:2012-11-27 06:06:42
【问题描述】:
我有一个使用 async CTP 库的应用程序能够使用 async/await 关键字,并且我知道 C# 的实际版本 5.0 默认具有此功能,并且并非所有 async 的确切版本CTP。我的意思是,例如在异步 CTP 中存在 TaskEx 而在 C# 5.0 中不存在,是 Task。
尽管有这些差异,我想知道异步方法返回的 Task 对象是否相同。
就我而言,我有一个用于存储库访问数据库的接口。目前这个存储库是由一个使用 C# 4.0 的类实现的,但它可以使用 asyc CTP 返回一个 Task 并使用 await keyowrd。但在未来,我想使用其他使用 C# 5.0 的类。
如果我的接口定义了一个返回任务的方法,我可以用使用 C# 4.0 的类和使用 C# 5.0 的类来实现这个接口吗?还是异步 CTP 和 C# 5.0 中的 Task 对象存在差异?
PD:我更正了 C# 的版本,我的意思是 5,0 而不是 C# 4.5。
PD2:似乎有了 VS2012,我可以使用 Microsoft.Bcl.Async 和 Microsoft.CompilerServices.AsyncTargetingPack 在目标是 .NET 4.0 的项目中使用 asyn/await 关键字。但我不知道它们之间有什么区别。
【问题讨论】:
-
你的意思是C# 5.0?
-
是的,我的意思是 c# 5.0 和 .NET 4.5。
标签: c# async-await async-ctp