【发布时间】:2019-09-25 05:06:00
【问题描述】:
在 ViewComponent 中我收到了这个警告:
(我用过ASP.NET Core 2)
警告 CS1998:此异步方法缺少“等待”运算符,将运行 同步。考虑使用 'await' 运算符来等待 非阻塞 API 调用,或 'await Task.Run(...)' 来做 CPU 密集型工作 在后台线程上。
我该如何解决?
public class GenericReportViewComponent : ViewComponent
{
public GenericReportViewComponent()
{
}
public async Task<IViewComponentResult> InvokeAsync(GenericReportViewModel model)
{
return View(model);
}
}
更新:
在看来,我有@await:
<div class="container">
@await Component.InvokeAsync("GenericReport", new GenericReportViewModel() { })
</div>
【问题讨论】:
-
从方法定义中删除
async。 -
错误信息的哪一部分你不清楚?当你不做异步时删除异步,当你做时在方法中使用等待
-
InvokeAsync确实没有异步操作。您要么使该方法不再是async,要么您将await方法内的一个操作。 -
从您发布的内容来看,
InvokeAsync方法实际上并没有做任何异步操作。您可以安全地删除async并返回IViewComponentResult。 -
更新:在看来,我有@await: ...但你在
InvokeAsyncbody 中没有等待
标签: c# asp.net asp.net-core async-await asp.net-core-2.0