我最近开始学习 Python,我正在制作的简单应用程序的一部分包括一个计时器,该计时器具有在其自己的线程中运行的 hh:mm:ss 显示。
环顾网络,我发现了两种实现方式:
- 使用 sched.scheduler
- 使用 threading.Timer
对于两种实现,我的做法看起来都相似:
预定:
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。我知道您可以手动增加最大递归级别,但是这里肯定不需要这样做吗?
没有错误,但偶尔会跳过秒,或不规则地滴答作响。
有人可以为我指出正确的方向吗?如何正确地做到这一点?谢谢你。