【发布时间】:2014-05-09 09:21:11
【问题描述】:
假设我有一个不是异步但返回 Task 的方法(因为定义来自一个也用于异步实现的接口)
public Task DoWorkAsync(Guid id)
{
// do the work
return ...;
}
返回的最佳对象是什么?我目前的选择:
return Task.Yield();
return Task.FromResult<object>(null);
// any of the other but cached in a static field and reused.
【问题讨论】:
-
旁注 - 如果可能,则引入没有异步操作的单独接口(ISP 原则)
-
@SergeyBerezovskiy - 在这种情况下,最大的问题是调用者必须根据提供的实现(例如,通过 IoC)在两个接口之间切换。我可以在两者之间创建一个包装器,但对于它来说,原始问题仍然很重要。
标签: c# async-await