同步实现异步接口?

时间:2013-01-18 00:39:01

标签: c# asynchronous task-parallel-library

我必须实现一个C#接口方法,如:

Task<Foo> ExecuteAsync();

但是这个特定的实现实际上是同步的。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

如果您使用.Net 4.0,则需要使用TaskCompletionSource,设置其结果,然后返回Task

在.Net 4.5 / C#5.0上,您有两种选择:使用Task.FromResult()或将您的方法设为async方法而不使用任何await。第二种方法效率较低,会产生警告,所以我会选择第一种方法。