在Response.End ThreadAbortException之后,ASP.Net线程会发生什么?

时间:2013-06-02 00:46:30

标签: asp.net threadpool threadabortexception

有几个答案解释Is Response.End() considered harmful? 但是我没有找到明确的确认, 在Response.End ThreadAbortException之后,ASP.Net线程会发生什么。

Eric Lippert在评论中表示 Response.End () doesn't abort current thread 注意到“线程只会回到线程池中。”但他承认,他已经超过10年没有使用线程模型了。

在CodeProject文章Exploration of approaches to handle ThreadAbortException with Response.Redirect中 有人告诉他们 “应终止当前线程(负责当前请求)(并返回线程池),”, 但后来有人提到过 ASP.NET工作进程可能面临线程饥饿。

有人可以提供任何引用来澄清线程

  • 返回游泳池,或
  • 终止并从池中删除了?

有类似的(不是Asp.net特定的)未回答的问题Aborting a thread-pool thread

顺便说一句,有一种流行的观点,即ThreadAbortException可以被应用程序代码捕获,但是在catch块的末尾重新抛出(源自MSDN  Thread.Abort Method)。然而,这是不正确的(至少它并不总是正确的)。 我在我们的应用程序中找到了代码,在Response.End捕获并“吃掉”之后 ThreadAbortException,继续处理而不重新抛出。

0 个答案:

没有答案