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

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

основатель — Волосатов Евгений Витольдович

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

  • На этом уроке мы поговорим о статусах потока:
    Unstarted, Running, Wait/Sleep/Join, Abort Requested, Stopped.
    Создадим функционал для остановки потоков по нажатию клавиш.
    И научимся сопротивляться этим остановкам.
  • Дата отправки отчёта: 24 апреля 2016 г.
  • Задание выполнено: за 20 мин.
  • Чему научился: Создавать функцию для остановки потоков по нажатию клавиш.
  • Что было сложным: все понятно
  • Комментарии: замечаний нет
  • Оценка видео-уроку:
Отчёт от 6644 за Бурные потоки / Замри!




Оцени работу

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

24. --
Олюшка
Олюшка
ответить
→  valerys Nikola  # Бурные потоки / Замри! / 2016-04-24 22:32

Классно что все получилось и все легко и понятно, я очень рада как у тебя проходит обучение! :)



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





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

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

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

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


Научился: Увы не работает этот аборт, не разобрался как его вызывать, на хабре была статья перекомпилировать сам net.core, ну этого удовольствия мне не нужно, вызывается исключение и увы взять под контроль нет возможности.
Трудности: Пришлось надолго отвлечься, так как урок пошел не по сценарию, вероятно уже устарел урок и не соответствует текущей версии .Net



Научился: узнал глубже как остановить и управлять потоками.
Трудности: При добавлении в метод 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). НО пока безрезультатно. Кто нибудь сталкивался с таким в данном уроке. Или просьба наведите в нужном направлении, куда копать?