【问题标题】:Multithreading in MVC 4MVC 4 中的多线程
【发布时间】:2014-11-17 11:41:24
【问题描述】:

我是 ASP.NET MVC(使用 4)的新手,并且有一些关于多线程的基本问题。

  1. 现在我已经编写了所有的控制器。我应该显式创建一个线程轮询并为每个传入请求分配一个线程吗?我读到一些暗示这种多线程是在 MVC 中自动完成的,我不应该自己做。这是真的吗?

  2. 大多数请求会更改数据库(即上传文件)。这个postDbContext 不是线程安全的,选择的答案是为每个线程创建一个新实例,我在控制器中这样做了。如果 MVC 自动创建线程(问题 #1),这是否安全?

谢谢!

【问题讨论】:

    标签: c# multithreading entity-framework asp.net-mvc-4


    【解决方案1】:

    1) 你不必担心。

    在 Web 服务器上,.NET Framework 维护一个线程池,用于为 ASP.NET 请求提供服务。当请求到达时,池中的一个线程被分派来处理该请求。如果同步处理请求,则处理请求的线程在处理请求时被阻塞,并且该线程无法为另一个请求提供服务。

    从这里:http://msdn.microsoft.com/en-us/library/ee728598(v=vs.100).aspx

    2) 如果您为每个请求构建 DbContext 应该没问题 - 在控制器的构造函数中执行此操作将为您执行此操作。 (如果需要,您也可以查看控制反转/依赖注入框架,但它不会改变原理。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多