私の C# プログラムには、実行中のテストを表すスレッドがあります。このスレッドは、「実行の中断」というラベルの付いたボタンをクリックすることで中止できます。ThreadAbortedException
スレッド (したがってテスト) がエレガントな方法で終了する (そして事前にいくつかの重要な作業を行う) ために、このボタンは、明確に定義されたいくつかの瞬間にのみ有効になりますThread.ResetAbort()
。 、 スレッド)。
問題は、アボートが可能な時間枠では、一度開始すると最初から最後まで実行する必要があるいくつかのタスクがあり、TAE が怖いことです。ロックはこれに対する解決策を提供しません。また、finally ブロックは解決策を提供しますが、次の方法で重要なコードをラップするのはエレガントではありません。
try {
} finally {
// vital code
}
ただし、他の解決策は見つかりませんでした。
ThreadAbortException
これはブロックの終わりまで干渉を遅らせる別の方法ですか?