最近我开始学习Python,我正在制作一个简单应用程序,其中包括一个具有hh:mm:ss显示的计时器,在它自己的线程中运行。
在网上查找后,我发现了两种实现方法:
- 使用sched.scheduler
- 使用threading.Timer
我采用的方式对于两种实现看起来很相似:
sched:
def tick(self, display, alarm_time):
# Schedule this function to run every minute
s = sched.scheduler(time.time, time.sleep)
s.enter(1, 1, self.tick, ([display, alarm_time]))
# Update the time
self.updateTime(display)
计时器:
def tick(self, display):
# Schedule this function to run every second
t = Timer(1, self.tick, (display,alarm_time))
t.start()
# Update the time
self.updateTime(display)
在正确滴嘀嗒方面运作良好,但几分钟后会生成以下错误:RuntimeError: maximum recursion depth exceeded。我知道您可以手动增加最大递归级别,但这里肯定不需要这样做,对吧?
没有错误,但秒数偶尔会跳过或不规则地滴答。
请问有人能指导我如何正确操作吗?谢谢。