gpt4 book ai didi

ASP.NET MVC4 异步 Controller - 为什么要使用?

转载 作者:行者123 更新时间:2023-12-03 08:26:43 26 4
gpt4 key购买 nike

我试图了解为什么以及何时应该使用 async Controller Action 。最终,当我使用 await在其中,它将等待操作完成以返回 View 。

例如

public async Task<ActionResult> TryMe()
{
await SomeActionAsync();
return View();
}

在这种情况下,如果我使用 async或不使用 async ,该 Action 将需要相同的时间来执行。

如果我不尝试并行运行至少 2 个慢速操作(不相互依赖),我看不出有任何理由使用 async Controller Action 。

如果我错了,请纠正我。我想我在这里遗漏了一些东西。

最佳答案

await的要点|关键字是让您使用异步操作而无需编写丑陋的回调。
使用异步操作有助于避免浪费线程池线程。
解释
ASP.Net 在托管线程池的线程中运行所有代码。
如果一次运行的慢请求太多,线程池将满,新的请求将需要等待线程释放。
然而,您的请求通常很慢不是因为它们在进行计算(计算绑定(bind)),而是因为它们在等待其他东西,例如硬盘、数据库服务器或外部 Web 服务(IO 或网络-边界)。
仅仅为了等待外部操作完成而浪费宝贵的线程池线程是没有意义的。
异步操作允许您启动操作,将线程返回到池中,然后在操作完成时在不同的线程池线程上“唤醒”。
在操作运行时,不消耗任何线程。

关于ASP.NET MVC4 异步 Controller - 为什么要使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15190112/

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