C# 用ReSharper会出现async和await的警告

装了ReSharper和几个ReSharper的扩展后, 发现几处asyncawait的异步方法有警告, 大概意思是异步可能被忽略.
仔细研究了下, 发现被警告的方法体都是只在尾部return await xxx, 也就是方法体内只有一个await并且await那一条代码后面已经没有其他代码了.

一开始没反应过来为什么会警告, 几经搜索才恍然大悟.
参考: StackOverflow的一个问题

只有一个await并且是最终一条代码的情况下, 其实这个方法内并没有异步需求, 所以不需要async声明, 也不需要await一个Task<T>, 直接返回这个Task<T>即可, 因为该方法的调用方会去await这个返回值.
但是方法名最好还是以Async结尾, 因为这毕竟也算是个异步方法.

标签: none

添加新评论

captcha
请输入验证码