当使用Response.Redirect(“url”,true)时,执行线程如何终止。

时间:2013-09-23 12:14:27

标签: c# asp.net

当使用Response.Redirect(“url”,true)时,执行线程如何终止。?

编译器如何通过此布尔值知道线程应该执行?

1 个答案:

答案 0 :(得分:1)

TFM有关于Response.Redirect及其布尔参数的以下内容:

  

在页面处理程序中使用此方法终止对一个页面的请求并为另一个页面启动新请求时,请将endResponse设置为 false ,然后调用CompleteRequest方法。 如果为endResponse参数指定true,则此方法为原始请求调用End方法,该方法在完成时抛出ThreadAbortException异常 [Emphasis mine]。此异常对Web应用程序性能有不利影响,这就是为什么建议为endResponse参数传递 false 的原因。有关更多信息,请参阅End方法。

另请注意,编译器不知道应该做什么。这就是实现Redirect方法的方式。提供的链接中有更多详细信息。