【发布时间】:2019-01-28 17:51:18
【问题描述】:
这可能是一个更巧妙的问题,但我在 ViewComponent 类中有以下方法
public async Task<IViewComponentResult> InvokeAsync()
{
return View();
}
但名称 InvokeAsync 带有下划线并给出以下警告
此异步方法缺少“等待”运算符,将同步运行。 考虑使用 'await' 运算符来等待非阻塞 API 调用, 或 'await Task.Run(...)' 在后台线程上执行 CPU 密集型工作
但如果我尝试从方法中删除 async,则 return View() 会带有红色下划线并输出以下错误
'Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult' 到 'System.Threading.Tasks.Task' MVCStateManagement
所以我的问题是我应该采取什么方法?让 async 与警告无关,或者是否有解决方法/修复此警告?它对我的项目有那么大的影响吗?
谢谢!
【问题讨论】:
-
我正在关注本教程 docs.microsoft.com/en-us/aspnet/core/mvc/views/… 这就是它被定义的原因。
-
@AluanHaddad:好点。看我的回答。
-
该教程中它是异步的原因是因为在教程中它调用了一个异步方法:var items = await GetItemsAsync(maxPriority, isDone);。如果您没有在代码中调用 asyc 方法,则没有理由让您的方法异步。
标签: c# asp.net-mvc asynchronous asp.net-core-viewcomponent