【问题标题】:.NET Async on the web-- Must It be w/ an Async Controller?Web 上的 .NET 异步——它必须带有异步控制器吗?
【发布时间】:2013-02-10 03:40:36
【问题描述】:

如果我希望在我的数据层使用 TPL 异步,我是否还必须在我的 MVC 控制器上使用 Task<T>

换句话说,要使 async 与 .NET MVC 一起工作,是否必须从请求开始时就实现它才能在更深的执行层上工作?或者,即使我使用的是同步控制器,在我的 DAL/Web 请求级别使用 Task<T> 仍然有好处吗?

【问题讨论】:

    标签: asp.net-mvc asynchronous task-parallel-library


    【解决方案1】:

    如果您不使用异步控制器,您将不得不等待某个任务。至此,主要优势就没有了:减少阻塞线程的数量。

    当然,如果您同时运行多个异步活动,则情况并非如此。这会将阻塞线程的数量从 N 减少到 1。 (如果 N = 1 没有好处,只有伤害)。

    请注意,默认情况下异步并不快。它在 ASP.NET 中的主要目的是在极端情况下获得可伸缩性 - 处理 100 多个并发请求。只有这样,它才会更快或规模更大。

    因此,如果您有“通常”数量的并发请求(例如

    【讨论】:

      猜你喜欢
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 2016-08-02
      • 2017-05-19
      • 1970-01-01
      相关资源
      最近更新 更多