Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我必须实现一个 C# 接口方法,例如:
Task<Foo> ExecuteAsync();
但是这个特定的实现实际上是同步的。我怎样才能做到这一点?
如果您使用的是 .Net 4.0,则需要使用TaskCompletionSource,设置其结果,然后返回Task.
TaskCompletionSource
Task
在 .Net 4.5 / C# 5.0 上,您有两个选择:使用Task.FromResult()或将您的方法变成async没有任何await. 第二种方法效率较低,并且会产生警告,所以我会选择第一种方法。
Task.FromResult()
async
await