как изменить мой код для исправления потоков python(pyTelegramBotAPI), которые можно запустить только один раз?
Создаю телеграм-бота. Я запускаю таймер на кнопке. Ниже приведен следующий код:
class MyThread(Thread):
def __init__(self, event):
Thread.__init__(self)
def run(self):
time.sleep(5)
print("my thread")
stopFlag = Event()
thread = MyThread(stopFlag)
@bot.message_handler(content_types=['text'])
def buttons(message):
if message.chat.type == 'private':
if message.text == 'Запуск таймера 1':
if thread.is_alive():
bot.send_message(message.chat.id, "wait for the timer to end")
else:
thread.start()
bot.send_message(message.chat.id, "timer started!")
Когда я нажимаю кнопку после истечения таймера, я получаю «потоки могут быть запущены только один раз», что имеет смысл, поскольку у меня нет многопоточной версии кода. Как сделать многопоточный вариант, чтобы таймер можно было запускать бесконечно?
1 ответ
жив()
Вернуть, жив ли поток.
Этот метод возвращает True непосредственно перед запуском метода run(), пока не завершится работа метода run().
После того, как это закончится,
thread.is_alive()
возвращает вас
False
снова, и вы пытаетесь запустить его второй раз, но безуспешно. Вам необходимо инициализировать новый
MyThread
объект, чтобы запустить его снова.