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

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

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

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

  • На этом уроке мы поговорим о статусах потока:
    Unstarted, Running, Wait/Sleep/Join, Abort Requested, Stopped.
    Создадим функционал для остановки потоков по нажатию клавиш.
    И научимся сопротивляться этим остановкам.
  • Дата отправки отчёта: 26 февраля 2017 г.
  • Задание выполнено: за 49 мин.
  • Чему научился: Узнал о существовании статуса потоков.
    Попытался ими управлять. Но не все получилось.
  • Что было сложным: Непонятно зачем в функции Run() нужно 2 цикла. У меня все работает с одним.
  • Комментарии: Попытался управлять Питонами с помощью статуса. Но не все получилось.
    Например, хотел по нажатию клавиши временно приостанавливать поток
    методом .Suspend(), а затем освобождать методом t[ip].Resume();
    (См. в скриншоте закомментированный текст. Условие в строке 52 как-то странно работает: всегда true) Кто-то может указать на ошибку?
    Зато проверку Thread.ResetAbort(); сделал по-другому, менее жестко: я решил на 2 секунды приостановить выбранного питона, затем освободить  его и поменять ему цвет на белый. В динамике это выглядит красиво.
  • Оценка видео-уроку:
Отчёт от 11589 за Бурные потоки / Замри!




Оцени работу

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

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Yefim  # Бурные потоки / Замри! / 2017-02-26 21:03

Не могу однозначно ответить, нужно почитать об этих статусах теорию для начала, а потом протестировать в отдельной программе, на простом примере.


791. --
Валерий Жданов
Валерий Жданов
ответить
→  Yefim  # Бурные потоки / Замри! / 2017-02-27 06:07

все равно интересна такая проверка Thread.ResetAbort()



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





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

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

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

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


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


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