我有一个使用异步 CTP 库的应用程序能够使用 async/await 关键字,并且我知道 C# 的实际版本 5.0 默认具有此功能,并且它并不是异步 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 关键字。但我不知道它们之间有什么区别。