@icebeat

Как остановить поток python?

Всем привет! Подскажите как остановить поток:

def job():
    messagebox.showinfo(title="Проверка", message="Ура! Работает!")

def schedule_work():
        schedule.every(3).seconds.do(job)
        while not schedule_stop:
            schedule.run_pending()
            time.sleep(1)

def start():
    if app_btn['text'] == 'Начать':
        thr1 = threading.Thread(target=schedule_work)
        thr1.start()
        app_btn['text'] = 'Остановить'
    else:
        thr1.join()
        app_btn['text'] = 'Начать'


По нажатию кнопки вызывается start()

Нажимаю "Начать" - код работает, все хорошо.
Нажимаю "Остановить" - зависает
  • Вопрос задан
  • 163 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Метод join() приостанавливает тот поток, в котором он вызван до момента завершения указанного потока. Он никак не сигнализирует указанному потоку, что пора завершаться, это твоя задача.
Я не вижу, чтобы ты присваивал True переменной schedule_stop.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы