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

Формула программиста
основатель — Волосатов Евгений Витольдович

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

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




Оцени работу

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

  • Отчёт оценивали:
    5649Максим Лапшинов+1   10681Vitalik0   3418Argona+1   10494Алексей В.+1   10670Сергей Соколов+1   9567Максим+1   6452Кирилл Шмойлов+1   4992Николай+1   7645Александр Львович+1   7119Новопашин Владимир+1   10233Виталий+1   4395Денис+1   459Сергей Сергеевич+1   1Евгений Волосатов+1   4467Alcatraz+1   689Igorenzia+1   9263Андрей Н.+1   9237Mais+1   10673Алексей Хонин+1   10478DeeP+1   10759Виталя0   10517Никита+1  

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




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Узнал о существовании статуса потоков. Попытался ими управлять. Но не все получилось.
Трудности: Непонятно зачем в функции Run() нужно 2 цикла. У меня все работает с одним.
Попытался управлять Питонами с помощью статуса. Но не все получилось. Например, хотел по нажатию клавиши временно приостанавливать поток методом .Suspend(), а затем освобождать методом t[ip].Resume(); (См. в скриншоте закомментированный текст. Условие в строке 52 как-то странно работает: всегда true) Кто-то может указать на ошибку? Зато проверку Thread.ResetAbort(); сделал по-другому, менее жестко: я решил на 2 секунды приостановить выбранного питона, затем освободить его и поменять ему цвет на белый. В динамике это выглядит красиво.
Научился: Закрепил голику использования lock, повторил Abort, узнал, какие состояния бывают у потока
Мне кажется, нужно было сделать больший акцент на том, что когда мы прерываем поток, то внутри него может возникнуть именно ОШИБКА (если мы его прерываем не во время ожидания). Просто у когда я у себя в одной программе так делал во время выполнения sql запроса (выполнялся он долго, так что в фоновом потоке), программа не ждала, пока он выполниться и просто вырубала весь поток, в связи с чем в нём возникала ошибка. А так всё хорошо =)