Visual Studio не ловит исключение ThreadAbortException
Я настроил ThreadAbortException в диалоге исключений отладки VS, но он никогда не прерывается, даже если я явно использую 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)
1 ответ
Redirect() вызывает End(), который выдает исключение ThreadAbortException по завершении. Это один из источников таких исключений.
Чтобы разбить исключения, выберите "Отладка" -> "Исключения", а для "Общих исключений времени выполнения" установите флажок в столбце "Брошенный".
Вы можете проверить правильность настроек, запустив этот пример кода в консольном приложении. Отладчик должен остановиться в том месте, где поток прерывается.
using System.Threading;
using System.Threading.Tasks;
namespace AbortThread
{
class Program
{
static void Main( string[] args )
{
Task.Run( () => Thread.CurrentThread.Abort() );
}
}
}