c# - MVC 中的异步/等待 - 为什么在长时间运行的操作期间释放线程很重要

标签 c# asp.net-mvc multithreading asynchronous

我遇到过很多关于 MVC 中 async/await 的好处的问题。他们提到不阻塞请求线程很重要,这样工作线程可以同时处理不同的请求。到这里为止,一切都很好,而且很容易理解。

  • 但是我不明白正常和正常之间有什么区别 请求/工作线程?两者之间有这么大的区别吗? 两个这样释放工作线程和创建普通线程就是这样 有益?
  • 与常规相比,为什么请求线程的数量有限 线程?
  • 请求线程是否占用更多内存?

请随时向我指出一些文章,以更详细地解释原因。

最佳答案

However I dont understand what is the difference between a normal and a request/worker thread?

这不是释放线程的重点。释放线程的意义在于处理该请求负载所需的线程减少了一个。这反过来意味着您的服务可以处理更高的负载(以及变化更快的负载)。

使用 async/await 可以让您的网站进一步(更快)扩展。如果您的后端也是可扩展的(例如,云数据存储),那么使您的 Web 层可扩展可以让您的系统作为一个整体进一步(更快)扩展。

我在我的 intro to async ASP.NET 中对此进行了更多描述(并附有图片!)文章。

关于c# - MVC 中的异步/等待 - 为什么在长时间运行的操作期间释放线程很重要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40743529/

相关文章:

c# - 我可以安全地绑定(bind)到多线程应用程序上的数据吗?

c# - 拒绝访问 - Windows 服务 Web API Controller 类

c# - 返回对象和响应返回的区别?

c# - 创建 C# 类的对象有哪些不同的方法?

c# - NLog 减慢并破坏了我的 ASP.net MVC 应用程序

asp.net-mvc - 使用循环方法对 nopcommerce 进行负载平衡

Java:使用 ExecutorService 实现并发

java - 在 UIThread 上运行并发布查看,仍然得到 CalledFromWrongThreadException

c# - 如何匹配 C# 中的第一个子模式?

c# - 在关键索引上使用 LINQ 连接多维数组