gpt4 book ai didi

c# - ASP.NET 和 C# 异步

转载 作者:行者123 更新时间:2023-11-30 14:49:59 24 4
gpt4 key购买 nike

我对 C# async 感到困惑。我了解用于并行任务处理的async。例如,一个方法做 A 和 B 任务,async 使 A 和 B 同时做 Action ; B 不必等到 A 完成。

但下面的示例代码只执行一个任务,即从数据库中提取数据。这意味着,没有并行任务。但是为什么要使用async呢?

请给我一个建议,以便我理解async

[ResponseType(typeof(BookDetailDTO))]
public async Task<IHttpActionResult> GetBook(int id)
{
var book = await db.Books.Include(b => b.Author).Select(b =>
new BookDetailDTO()
{
Id = b.Id,
Title = b.Title,
Year = b.Year,
Price = b.Price,
AuthorName = b.Author.Name,
Genre = b.Genre
}).SingleOrDefaultAsync(b => b.Id == id);
if (book == null)
{
return NotFound();
}

return Ok(book);
}

最佳答案

我在 async ASP.NET article 中详细解释了这一点.总之,async 通过释放线程来工作,因此这些线程可以用于其他事情。

means, there is nothing for parallel tasks. But why does it use async?

的确,这个请求并没有同时做多件事;使其异步根本不会加快请求速度。

但是,作为一个整体的应用程序确实还有其他事情要做;具体来说,它还有其他可以响应的请求。使用 async 可以在线程池线程未被主动使用时释放它们。这允许您的应用程序扩展(假设您的后端是可扩展的)。换句话说,async 允许您最大限度地利用线程池。

关于c# - ASP.NET 和 C# 异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37907161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com