Найти - Пользователи
Полная версия: Прервать поток с бесконечным циклом
Начало » Python для новичков » Прервать поток с бесконечным циклом
1
Alex_3000
Есть бесконечный цикл, который с некоторой периодичностью делает какое-то действие.
Нужно, чтобы пользователь в любой момент мог его остановить
Пример
 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
не отрабатывает
Alex_3000
Решил проблему

надо подставить
 flag = int(flag)

после
 flag = input('Input Flag')
AD0DE412
Alex_3000
надо подставить

  flag = int(flag)

или

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

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB