Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 26, 2020 09:39:25

Alex_3000
Зарегистрирован: 2017-02-13
Сообщения: 7
Репутация: +  1  -
Профиль   Отправить e-mail  

Прервать поток с бесконечным циклом

Есть бесконечный цикл, который с некоторой периодичностью делает какое-то действие.
Нужно, чтобы пользователь в любой момент мог его остановить
Пример

 flag = 0
def inputFunc():
    global flag
    flag = input('Input Flag')
    inputFunc()
def loopFunc():
    global flag
    while True:
        if (flag==1):  #Попытка остановить цикл
            break
        print(time.time(),flag)
        time.sleep(2)
thread_loop = threading.Thread(target=loopFunc)
thread_flag = threading.Thread(target=inputFunc)
thread_flag.start()
thread_loop.start()
thread_loop.join()

Т.е. через терминал ввожу число в любой момент, если это 1, то цикл должен завершиться и поток остановиться.
Но этот пример не работает, подскажите где ошибка?
Причем после ввода числа, это число будет выводиться командой print(time.time(),flag)
но эта часть
 if (flag==1):  #Попытка остановить цикл
            break
не отрабатывает

Офлайн

#2 Июнь 26, 2020 09:55:48

Alex_3000
Зарегистрирован: 2017-02-13
Сообщения: 7
Репутация: +  1  -
Профиль   Отправить e-mail  

Прервать поток с бесконечным циклом

Решил проблему

надо подставить

 flag = int(flag)

после
 flag = input('Input Flag')

Офлайн

#3 Июнь 26, 2020 10:36:39

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Прервать поток с бесконечным циклом

Alex_3000
надо подставить

  flag = int(flag)

или

  if (flag=='1'):  #Попытка остановить цикл
            break



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Июнь 26, 2020 10:37:30)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version