#python #python-3.x #timer #python-multithreading #intervals
#питон #python-3.x #таймер #python-многопоточность #интервалы
Вопрос:
Когда я ставлю большой интервал для выполнения, программа заканчивается без выполнения данной функции (объединение не решает проблему)
from threading import Timer class TimerThread: def __init__(self, delay_time, thread_function): self._delay_time = delay_time self._thread_function = thread_function self._timer = None def run_repeatedly(self): self._thread_function() self._timer = Timer(self._delay_time, self.run_repeatedly) self._timer.start() self._timer.join() timer = TimerThread(60 * 60, self.func) timer.run_repeatedly()
Ответ №1:
Я проверил ваш код, и он, кажется, работает (без join
):
from threading import Timer class TimerThread: def __init__(self, delay_time, thread_function): self._delay_time = delay_time self._thread_function = thread_function self._timer = None def run_repeatedly(self): self._thread_function() self._timer = Timer(self._delay_time, self.run_repeatedly) self._timer.start() def cancel(self): if self._timer is not None: self._timer.cancel() def my_func(): print("Hello") timer = TimerThread(3600, my_func) timer.run_repeatedly()
Комментарии:
1. спасибо, та же проблема, к сожалению, это не решение
2. Затем вам нужно опубликовать полный пример вашего кода, который приводит к ошибке. В противном случае выявить проблему невозможно.