我有一个接口,公开一些异步方法。更具体地说,它定义了返回任务或任务<T>的方法。我正在使用async/await关键字。我应该担心“这种异步方法缺乏'等待'运营商,并将同步运行”警告
我正在实现这个接口的过程。但是,在这些方法中的一些方法中,没有什么可以等待。出于这个原因,我得到了编译器警告“这种异步方法缺乏'等待'运营商,并将同步运行...”
我明白为什么我得到的错误,但我想知道我是否应该对他们做任何事情在这上下文。忽略编译器警告感觉不对。
我知道我可以通过在Task.Run上等待来解决它,但是对于只做一些廉价操作的方法感觉不对。这听起来像会增加不必要的执行开销,但是我也不确定是否已经存在,因为存在async关键字。
我应该忽略警告还是有办法解决这个问题我没有看到?
这将取决于具体情况。你确定你想要这些操作同步执行吗?如果您确实希望它们同步执行,为什么该方法标记为“异步”? – Servy
只需删除'async'关键字即可。你仍然可以使用Task.FromResult返回一个Task。 –
在一个例子中,它确实只是给属性分配了一些值,所以我非常适合同步执行它。关于如何处理编译器的警告更具体一些,似乎可能是明显的删除异步关键字 – dannykay1710