中 C# 中,有一个接口定义了一个异步方法,但实现接口时并没有异步操作,没有用到 await ,编译器会告警:
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
请问如何最优雅地消除这个警告?
return Task.CompletedTask
异步方法有返回值,最终采用 await Task.CompletedTask
public async Task<CheckStatus> Check(Checkee checkee)
{
//...
await Task.CompletedTask;
return CheckStatus.Pass;
}
既然定义了异步方法,楼主为什么不直接使用异步操作呢
用不到异步操作
删除async关键字即可。
这样每个 return
返回值的地方都要 Task.FromResult
@dudu: 合理,性能方面,总比加个无用的await要好。