ThreadAbortException- исключение, генерируемое при Abort; а где оно, собственно? - C#

Узнай цену своей работы

Формулировка задачи:

Да, где? ...Вот изучил многопоточность у Гербердта Шилдта. Он пишет (про прерывание потоков):
"Метод Abort () создает необходимые условия Для генерирования исключения ThreadAbortException в том потоке, для которого он был вызван. Это исключение приводит к прерыванию потока и может быть перехвачено и в коде программы... и так далее "
В msdn примерно то же самое А вот код. Я ничё тут не перехватываю, я жду что всё будет рушиться а ось будет выдавать на-гора страшные надписи типа "произошло необработанное исключение " и всё в таком роде. Но поток прерывается тихо-мирно. Вот собсно и всё. Как бы мне понаблюдать за действием НЕОБРАБОТАННОГО исключения, к которому я (и думаю не один я) привык? А то я уж сомневаюсь- а есть ли оно?
// Прервать поток с помощью метода 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");
      }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5
Похожие ответы