gpt4 book ai didi

c# - 在 asp.net web api Controller 中使用异步方法有什么好处吗?

转载 作者:行者123 更新时间:2023-11-30 13:36:02 25 4
gpt4 key购买 nike

据我所知,异步方法调用将在新线程中启动该方法,并立即将控制权交还给发起调用的线程。因此,在 WinForm 应用程序中,当在事件处理程序中调用异步方法时,该方法将由新线程执行,并且控件将立即返回到发起调用的线程,在本例中是 UI线。此时,UI 线程可用于响应其他用户请求,直到异步调用完成,以便 UI 线程可以恢复事件处理程序内代码的执行。

我的问题是在相同的场景中会发生什么,但是我们拥有的不是 WinForms 应用程序和 asp.net web api Controller (或同时用于 web 应用程序和 web api 的 asp.net 核心 Controller )在 WinForms 中的 UI 线程是在调用异步方法后重新获得控制权以便能够响应其他用户交互的方法。 asp.net web api(或asp.net core)中的等效线程是什么,是否有任何其他形式的交互可以响应?

顺便说一句,我不是在问在 Controller 中使用异步方法是好是坏。有些库只提供异步方法,所以这是不可避免的。我就问有没有什么好处?

谢谢

最佳答案

对于 IIS,.NET Framework 维护着一个线程池,用于为 ASP.NET 请求提供服务。如果请求是同步处理的,则处理该请求的线程在处理该请求时会很忙,并且该线程无法为另一个请求提供服务。由于线程池没有无限数量的可用线程,我们可能会遇到同步接口(interface)问题。因此,当您需要执行 I/O 密集型请求和其他非 CPU 绑定(bind)请求时,您将通过使用异步操作获得好处。您可以使用 AsyncController Class如果您使用的是 4 之前的 MVC 版本,如果您使用的是 MVC4 或更高版本,则使用 async 方法。

使用异步方法好处的一个很好的例子是,如果您的网站正在处理用户提交的文件。根据文件类型、正在执行的处理类型以及文件的大小,这可能是一项资源密集型且耗时的操作,因此使用异步方法执行文件操作将为您在这种情况下带来明显的好处。

查看这些文章:

还有这个问题:

关于c# - 在 asp.net web api Controller 中使用异步方法有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41624443/

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