Asynchronous 我应该在服务器上的WEB API中使用async/await吗?

Asynchronous 我应该在服务器上的WEB API中使用async/await吗?,asynchronous,asp.net-web-api,.net-core,async-await,Asynchronous,Asp.net Web Api,.net Core,Async Await,因此,我正在用.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();

因此,我正在用.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();
        }
    }
公共异步任务获取(字符串电子邮件)
{
使用(JobsDB data=newjobsdb())
{
返回wait data.Profiles.Where(x=>x.Email.ToUpper()==Email.ToUpper()).FirstOrDefaultAsync();
}
}

现在我意识到,当客户端应用程序调用WEB API时,它们将以异步方式(在JavaScript代码中)调用WEB API,因此我一直认为WEB API本身不必使用异步方法。那么,在WEB API本身中使用async/await是否有真正的优势呢?这样做被认为是“最佳实践”吗?

是的,根据Microsoft的文章,在中使API端点异步是最佳实践

异步操作允许“优化”请求处理中涉及的线程数量,方法是让同一线程处理另一个请求,而前一个线程在
wait
(更多详细信息)下


此外,您还可以阅读这篇文章来了解
返回等待任务
返回任务
之间的区别(有一个重要的区别要知道)。

有大量的博客讨论何时使用异步编程。重要的是不要将所有异步调用误认为是新的线程调用。异步等待的常见领域是I/O、数据库操作等。最好查看指南和博客,了解这些信息,而不是StackOverflow,后者更多地涉及特定的编码问题。