ThreadAbortException- исключение, генерируемое при Abort; а где оно, собственно? - C#
Формулировка задачи:
Да, где?
...Вот изучил многопоточность у Гербердта Шилдта. Он пишет (про прерывание потоков):
В msdn примерно то же самое
А вот код. Я ничё тут не перехватываю, я жду что всё будет рушиться а ось будет выдавать на-гора страшные надписи типа "произошло необработанное исключение " и всё в таком роде. Но поток прерывается тихо-мирно. Вот собсно и всё. Как бы мне понаблюдать за действием НЕОБРАБОТАННОГО исключения, к которому я (и думаю не один я) привык? А то я уж сомневаюсь- а есть ли оно?
"Метод Abort () создает необходимые условия Для генерирования исключения
ThreadAbortException в том потоке, для которого он был вызван. Это исключение
приводит к прерыванию потока и может быть перехвачено и в коде программы... и так далее "
// Прервать поток с помощью метода Abort().
using System;
using System.Threading;
class StopDemo
{
static public void Run()
{
while (true)
Thread.Sleep(250);
}
static void Main()
{
Thread Thrd = new Thread(Run);
Thrd.Start();
Console.WriteLine("Подождём");
Thread.Sleep(1000);
Thrd.Abort();
Thrd.Join(); // ожидать прерывания потока
Console.WriteLine("Основной поток прерван");
}
}Решение задачи: «ThreadAbortException- исключение, генерируемое при Abort; а где оно, собственно?»
textual
Листинг программы
static public void Run()
{
try
{
while (true)
Thread.Sleep(250);
}
catch (ThreadAbortException)
{
Console.WriteLine("Aborted");
}
}