c# - 这是 await Task.FromResult 必要的吗?
问题描述
自从我开始从事现有项目以来,我想到了一个问题:考虑以下代码片段
public async Task<IHttpActionResult> DoSomething(Guid token)
{
var data= await repository.GetDataAsync(token);
return await Task.FromResult(Ok(data));
}
据我所见,使用 await 我可以 return Ok(data)
但有人告诉我,不使用它Task.FromResult
会导致异步问题......我在哪里可以找到关于这一点的更多信息?它用于 Web API 完整框架(不是 .NET Core)
解决方案
绝对没有!
仅当您从存储库同步接收数据时才应使用Task.FromResult(Ok(data))
,否则如果您至少有一个await
关键字,则这是不必要的资源浪费。
所以,你可以这样重写你的方法:
public async Task<IHttpActionResult> DoSomething(Guid token)
{
return Ok(await repository.GetDataAsync(token));
}
推荐阅读
- node.js - 我可以在 express.js req 对象中传递 JWT 解码数据吗?
- vb.net - VB.Net 使用表单属性或控件值
- node.js - 为什么在等待完成之前运行以下行?
- python - 如何在 cython 结构中创建日期时间字段?字符串字段怎么样?
- javascript - 将 innerText/textContent 与变量内的值进行比较
- javascript - 如何传递值而不是索引(对 Javascript 不太熟悉)
- javascript - 无法绑定到“标题”,因为它不是“页面标题组件”的已知属性
- angular - npm 版本 - 将 RC 添加到当前版本并使用预发布
- ftp - Vestacp:Ftp 不工作
- python - 在 Ubuntu(Linux 的 Windows 子系统)中显示 matplotlib 图 - Python 3