が呼び出されたときにスローされないようにApplicationInstance.CompleteRequest()
するための使用について説明したSOの質問に出くわしました。ThreadAbortException
Response.End()
以前は、上記の例外エラーを回避するために、次のオーバーロードを使用しましResponse.End(false)
た。
私は2つの方法の違いを理解しようとしています。なぜApplicationInstance.CompleteRequest()
代わりに使用することを選択するのResponse.End(false)
ですか?
編集:
ApplicationInstance.CompleteRequest()
私はそれが物事を行うためのより正しい方法であることを理解していますが、Response.End(true)
欠落している呼び出しの1つの機能は、後続のコードの残りの部分を処理していません。場合によっては、処理を続行したくないが、その場で実行を終了したいことがあります。
ここで私自身の質問に答えるかもしれませんが、正しい方法は、応答を終了するとき(スレッドを中止しないとき)に処理するコード行がなくなるようにコードを記述することです。
例:
[DO SOME WORK]
if ([SOME CONDITION])
{
ApplicationInstance.CompleteRequest();
}
else
{
//continue processing request
}
これはうまくいくかもしれませんが、メソッドの制限に対処するためにここでコーディングしているようです。そして、いくつかの厄介なコードにつながる可能性があります。
ここで何かが足りませんか?