0

VS デバッグ例外ダイアログで ThreadAbortException を設定しましたが、コードで Thread.Abort() を明示的に実行しても、壊れることはありません。

コンソールに次のようなエントリが表示されます。

A first chance exception of type 'System.Threading.ThreadAbortException' occurred in System.dll
An exception of type 'System.Threading.ThreadAbortException' occurred in mscorlib.dll but was not handled in user code

これらの例外でVSを中断させる方法はありますか? (私はデスクトップ用に VS Express 2012 を使用していますが、必要に応じて完全な VS にアクセスできます)

4

1 に答える 1

0

Redirect () は、完了時に ThreadAbortException 例外をスローする End() を呼び出します。これは、そのような例外の 1 つの原因です。

例外で中断するには、[Debug] -> [Exceptions] を選択し、[Common Language Runtime Exceptions] の [Thrown] 列にチェックを入れます。

このサンプル コードをコンソール アプリケーションで実行すると、設定が正しいことを確認できます。デバッガーは、スレッドが中止された時点で停止する必要があります。

using System.Threading;
using System.Threading.Tasks;

namespace AbortThread
{
    class Program
    {
        static void Main( string[] args )
        {
            Task.Run( () => Thread.CurrentThread.Abort() );
        }
    }
}
于 2014-01-30T18:27:13.230 に答える