在asp.net mvc 5控制器方法中分配多个线程

时间:2016-08-19 12:35:19

标签: asp.net asp.net-mvc multithreading visual-studio debugging

我正在处理一个项目(ASP.NET MVC 5),当涉及到它的业务逻辑时可能会遇到一些竞争危险,特别是当两个用户在大致相同的时间内调用相同的控制器方法时会发生什么。 / p>

所以我决定通过在前面提到的控制器方法中设置一个断点来测试这个,然后我尝试通过从我的浏览器发送请求来点击该断点。然后我打开一个新选项卡并尝试再次加载我的网站,但问题是它没有加载。

在我发布断点之前,网站完全(所有页面)都没有响应。

在线程窗口中,我可以看到很少有工作线程未被分配,而且一个线程卡在断点处。

我正在使用Visual Studio 2015社区。

这种行为是正常的吗?如果是这样的话,我应该如何处理我的问题?

1 个答案:

答案 0 :(得分:3)

我认为你错误地理解调试是如何工作的。 Visual Studio正在做它应该做的事情。它会停止断点上的所有执行,直到你释放它为止。在真实的生产环境中,或者在没有断点的情况下进行调试时,您会看到它会同时返回到两者(除非您是一个非常长时间运行的操作,否则您应该使用它)异步/等待)。

实际上,它(IIS)会将请求排队并处理它们。