- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这可能是一个更精细的问题,但我在 ViewComponent 类中有以下方法
public async Task<IViewComponentResult> InvokeAsync()
{
return View();
}
但名称 InvokeAsync 带有下划线并给出以下警告
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
但是如果我尝试从方法中删除 async 然后 return View() 带有红色下划线并输出以下错误
'Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult' to 'System.Threading.Tasks.Task' MVCStateManagement
所以我的问题是我应该采取什么方法?让异步忽略警告,或者是否有针对此警告的解决方法/修复?它对我的项目有那么大的影响吗?
谢谢!
最佳答案
不清楚为什么该方法被定义为 async
返回 Task<IViewComponentResult>
的方法首先。
因为这个方法看起来是真正同步的并且只是返回一个 View ,你应该这样定义它:
public IViewComponentResult Invoke()
{
return View();
}
同步方法不会仅仅因为添加了 async
就神奇地变成了异步方法关键字。
如果您正在实现一个接口(interface)并且不能更改方法的签名,您可以使用 Task.FromResult
返回已完成任务的方法(您仍应删除 async
关键字):
public Task<IViewComponentResult> InvokeAsync()
{
return Task.FromResult<IViewComponentResult>(View());
}
关于c# - 异步任务给出警告,(没有)异步任务给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51967347/
我有一个经典的 ASP 页面 (VBscript),它在服务器端生成 XML,然后 Response.Writes。该页面根本没有客户端。 但是我需要将其转换为 JSON。由于我找不到有效的 ASP
我想从客户端应用程序的 HDFS 中读取特定的 SequenceFile。我可以使用 SequenceFile.Reader 来做到这一点,它工作正常。但是是否也可以通过分析抛出的 IOExcepti
我是一名优秀的程序员,十分优秀!