【问题标题】:ViewComponent and InvokeAsync methodViewComponent 和 InvokeAsync 方法
【发布时间】:2016-10-12 20:22:52
【问题描述】:

在以下方法中,我收到了警告:This async method lacks 'await' operators and will run synchronously。在这个方法中我可以在哪里使用await? 注意:此方法返回一个简单的静态视图,而不与数据库等交互。

public class TestViewComponent : ViewComponent
{
    public async Task<IViewComponentResult> InvokeAsync()
    {
        return View();
    }
}

【问题讨论】:

    标签: c# asp.net-core asp.net-core-viewcomponent


    【解决方案1】:

    由于您没有异步工作要做,您可以删除 async 限定符并返回 Task.FromResult:

    public Task<IViewComponentResult> InvokeAsync()
    {
      return Task.FromResult<IViewComponentResult>(View());
    }
    

    或者,您可以忽略警告(即,使用 #pragma 将其关闭)。

    【讨论】:

    • 使用return Task.FromResult&lt;IViewComponentResult&gt;(View()) 与忽略警告有什么性能差异吗?
    • @nam: 我怀疑 FromResult 会更快,但在这种情况下完全可以忽略不计。
    • 感谢您为您的解决方案提供一些推理 - 它有效。
    猜你喜欢
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 2021-05-31
    • 2021-12-06
    相关资源
    最近更新 更多