У меня есть текущий код:
class Program
{
private static void Main()
{
while (true)
{
try
{
Thread.CurrentThread.Abort();
}
catch (ThreadAbortException)
{
Console.WriteLine("Abort!");
Thread.ResetAbort();
}
Console.WriteLine("now waiting");
Console.ReadKey();
}
}
}
Теперь я знаю, что метод ResetAbort
должен препятствовать тому, чтобы ThreadAbortException
продолжал перебрасывать себя, даже когда инструкция catch
ловит его, но мой вопрос таков:
Если кто-то может использовать метод ResetAbort
, то какая точка исключения специально перебрасывает себя?
пользователь может просто сделать
catch (ThreadAbortException ex)
{
Console.WriteLine("Abort!");
throw ex;
}