我遇到了一个 SO question,该问题讨论了在被调用时ApplicationInstance.CompleteRequest()
避免ThreadAbortException
被抛出的用法。Response.End()
过去,为了避免我上面提到的异常错误,我使用了这个重载:Response.End(false)
.
我试图了解这两种方法之间的区别。为什么我会选择使用ApplicationInstance.CompleteRequest()
代替Response.End(false)
?
编辑:
我知道这ApplicationInstance.CompleteRequest()
是更正确的做事方式,但是调用Response.End(true)
缺少的一个功能是不处理后面的其余代码。有时,我们不想继续处理,而是想立即结束执行。
也许在这里回答我自己的问题,但也许正确的做事方式是编写代码,以便在结束响应(而不是中止线程)时,没有更多的代码行需要处理。
一个例子:
[DO SOME WORK]
if ([SOME CONDITION])
{
ApplicationInstance.CompleteRequest();
}
else
{
//continue processing request
}
这可能有效,但似乎我们在这里编码是为了处理该方法的局限性。并可能导致一些混乱的代码。
我在这里错过了什么吗?