我有一组从基类继承的命令。基类具有以下声明:异步任务方法,不需要等待
public virtual async Task Execute(object parameter){}
继承类提供了对此方法的重写,并不是所有这些都等待任务。在这些情况下,编译器会生成一个警告:
这个异步方法缺少'await'操作符并且将同步运行。 考虑使用'await'操作符来等待非阻塞API调用 或'await Task.Run(...)'在后台线程上执行CPU绑定工作。
显式提供任务完整返回值是否正确?
public override async Task Execute(object parameter) {
//code containing no await statements...
await Task.CompletedTask;
}
我显示差异我的原始代码的输出和你从dotPeek推荐的更改的输出,它们是相同的(调试dll)。你的例子也删除了编译器的警告,这是我原来的动机。 - 谢谢! – jchristof