Может ли ThreadAbortException окончательно пропустить?

Все я've read утверждает, что прерывание в потоке выполнит блок finally, прежде чем завершится из ThreadAbortException. Я хотел подтвердить это, чтобы я мог планировать, как обрабатывать какой-то сторонний код, который может зависать бесконечно. Однако следующий тест меня смутил:

public void runTest(DateTime deadline)
{
    testThread = new Thread(() => 
    {
        try 
        {
            Console.WriteLine("test thread started at " + DateTime.Now.ToShortTimeString());
            while (true) { }
        }
        finally
        {
            Console.WriteLine("test thread entered FINALLY at " + DateTime.Now.ToShortTimeString());
            while (true) { }
        }
    });
    testThread.Start();
    while (testThread.IsAlive && deadline.Subtract(DateTime.Now).TotalSeconds > 0)
    {
        Console.WriteLine("main thread while loop " + DateTime.Now.ToShortTimeString());
        Thread.Sleep(10000);
    }
    if (testThread.IsAlive)
        testThread.Abort();
    Console.WriteLine("main thread after abort call " + DateTime.Now.ToShortTimeString());
}

Что я нахожу при запуске, так это то, что консоль никогда не упоминает вход в блок finally. Приложение продолжается после вызова .abort, как будто блока finally не существует вообще. Я делаю что-то неправильно? не должен»Передача управляющего блока в блок finally до достижения окончательной записи в консоль или порядок выполнения все еще зависит от того факта, что finally находится в отдельном потоке или что-то в этом роде?

Ответы на вопрос(3)

Ваш ответ на вопрос