我有一个接口
我想做的是实现一个
这是正确的实现吗?
public async Task BeginAsync()
{
await Task.Run(() => { });
}
我怀疑还有比这更优雅的做法。我还考虑过创建一个空方法。但这给了我一个我也不喜欢的警告。
只需使用
public Task BeginAsync()
{
return Task.CompletedTask;
}
如果您有
public Task<bool> BeginAsync()
{
return Task.FromResult(true);
}
当前的实现效率非常低,因为它构建状态机,并且还使用线程池线程来运行空任务。
很容易陷入这样的陷阱:认为
但它不是,
public Task<int> MethodTaskAsync(int arg0, int arg1)
{
Task<int> task = new Task<int>(() => Method(arg0, arg1));
task.Start(); // Hot task (started task) should always be returned.
return task;
}
这就是接口方法签名不需要,也不可能有
如果 因此,如果您只想从一个“异步”(即