我有一個接口,公開一些異步方法。更具體地說,它定義了返回任務或任務<T>的方法。我正在使用async/await關鍵字。我應該擔心「這種異步方法缺乏'等待'運營商,並將同步運行」警告
我正在實現這個接口的過程。但是,在這些方法中的一些方法中,沒有什麼可以等待。出於這個原因,我得到了編譯器警告「這種異步方法缺乏'等待'運營商,並將同步運行...」
我明白爲什麼我得到的錯誤,但我想知道我是否應該對他們做任何事情在這上下文。忽略編譯器警告感覺不對。
我知道我可以通過在Task.Run上等待來解決它,但是對於只做一些廉價操作的方法感覺不對。這聽起來像會增加不必要的執行開銷,但是我也不確定是否已經存在,因爲存在async關鍵字。
我應該忽略警告還是有辦法解決這個問題我沒有看到?
這將取決於具體情況。你確定你想要這些操作同步執行嗎?如果您確實希望它們同步執行,爲什麼該方法標記爲「異步」? – Servy
只需刪除'async'關鍵字即可。你仍然可以使用Task.FromResult返回一個Task。 –
在一個例子中,它確實只是給屬性分配了一些值,所以我非常適合同步執行它。關於如何處理編譯器的警告更具體一些,似乎可能是明顯的刪除異步關鍵字 – dannykay1710