我必须实现一个C#接口方法,如:
Task<Foo> ExecuteAsync();
但是这个特定的实现实际上是同步的。我怎么能这样做?
答案 0 :(得分:3)
如果您使用.Net 4.0,则需要使用TaskCompletionSource
,设置其结果,然后返回Task
。
在.Net 4.5 / C#5.0上,您有两种选择:使用Task.FromResult()
或将您的方法设为async
方法而不使用任何await
。第二种方法效率较低,会产生警告,所以我会选择第一种方法。