【发布时间】:2021-06-25 14:23:53
【问题描述】:
所以我正在使用 .NET 5 编写一个 WEB API,我开始使用类似的东西来获取我的数据:
public ProfileModel Get(string email)
{
using (JobsDB data = new JobsDB())
{
return data.Profiles.Where(x => x.Email.ToUpper() == email.ToUpper()).FirstOrDefault();
}
}
但我刚刚看到一篇文章让我觉得我应该像这样使用 async/await 来编写它:
public async Task<ProfileModel> Get(string email)
{
using (JobsDB data = new JobsDB())
{
return await data.Profiles.Where(x => x.Email.ToUpper() == email.ToUpper()).FirstOrDefaultAsync();
}
}
现在我意识到,当客户端应用程序调用 WEB API 时,他们会以异步方式(在他们的 JavaScript 代码中)这样做,所以我一直认为 WEB API 本身不必使用异步方法。那么在 WEB API 本身中使用 async/await 有真正的优势吗?这样做是否被视为“最佳实践”?
【问题讨论】:
-
有大量的博客讨论何时使用异步编程。重要的是不要将所有异步调用都误认为是新的线程调用。您想要执行异步等待的常见领域是 I/O、数据库操作等。您最好查看指南和博客以获取此信息,而不是更多关于特定编码问题的 StackOverflow。
标签: asynchronous asp.net-web-api .net-core async-await