Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Бурные потоки / Замри!

  • На этом уроке мы поговорим о статусах потока:
    Unstarted, Running, Wait/Sleep/Join, Abort Requested, Stopped.
    Создадим функционал для остановки потоков по нажатию клавиш.
    И научимся сопротивляться этим остановкам.
  • Дата отправки отчёта: 22 августа 2018 г.
  • Задание выполнено: за 1 день 14 час. 56 мин.
  • Чему научился: узнал глубже как остановить и управлять потоками.
  • Что было сложным: При добавлении в метод Start

                while (true)
                {
                    ConsoleKeyInfo key = Console.ReadKey();
                    if (key.KeyChar >= '0' && key.KeyChar <= '9')
                        threads[Convert.ToInt16(key.KeyChar.ToString())].Abort();
                }
    Вылазит исключение:

    System.Threading.ThreadAbortException
      HResult=0x80131530
      Message=Поток находился в процессе прерывания.
      Source=mscorlib
      StackTrace:
      at System.Threading.Monitor.Enter(Object obj)
      at Python.Python.Run() in C:\Users\Administrator\projects\Python\Python\Python.cs:line 220
      at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
      at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      at System.Threading.ThreadHelper.ThreadStart()


    Я так понимаю связано с тем что поток что то не успел завершить.
    Пытался через отладку понять, также убрал все блоки(block). НО пока безрезультатно.
    Кто нибудь сталкивался с таким в данном уроке.
    Или просьба наведите в нужном направлении, куда копать?
  • Оценка видео-уроку:
Отчёт от 19391 за Бурные потоки / Замри!




Оцени работу

 
Сохранить страницу:

  • Отчёт оценивали:
    3922Александр+1   6452Кирилл Шмойлов+1   17606Виктор+1   791Валерий Жданов+1   17947Dmitry Sinitsin+1   16218Дмитрий+1   19525Александр Балбашов+1   4395Денис+1   7119Новопашин Владимир+1   1Евгений Волосатов+1   3747Сергей+1   18493Evgenii Kudriavtcev+1   18688Arslan+1   19750konstantin0   1295Дмитрий Че+1   4814Дмитрий+1   459Сергей Сергеевич+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Научился обрабатывать запросы на прерывание процесса и (при необходимости) противодействовать им.
---


Научился: Провел эксперименты с остановкой движения каждого питона.
Трудности: Понять смысл работы с ThreadAbortException и методом Thread.ResetAbort();
Так до конца и не понял почему нужно было помещать в while() еще один while() и для чего применяли Thread.ResetAbort(); если все равно питон продолжал двигаться(((