Threading.Timer - 维护对重复函数的控制
Python 的 threading.Timer 提供了一种机制来安排函数以指定的时间间隔运行。但是,使用多次调用 start() 的初始方法可能会导致运行时错误。
要解决此问题,建议创建自定义线程类,如下面的解决方案所示:
import threading class MyThread(threading.Thread): def __init__(self, event, function): threading.Thread.__init__(self) self.stopped = event self.function = function def run(self): while not self.stopped.wait(0.5): self.function()
在这个类中,stopped事件用于控制线程的执行。该线程不是多次启动和停止计时器,而是连续运行,定期检查停止的事件。当事件设置后,线程终止。
在启动计时器的代码中,您可以使用已停止的事件来停止计时器:
stopFlag = threading.Event() thread = MyThread(stopFlag, function) thread.start() # To stop the timer later on stopFlag.set()
这种方法提供了一个干净的方法启动、停止和重置计时器的有效方法,允许灵活控制重复函数的执行。
以上是如何使用Python的threading.Timer保持对重复函数的控制?的详细内容。更多信息请关注PHP中文网其他相关文章!