当我启动我的瓶子app时,一个对象会创建一个永久运行的计时器:
from threading import Timer
class Watcher(object):
def __init__(self, timer=Timer):
self.timer = timer
self.watcher_interval = 2 * 60 * 60
self.check_condition()
def check_condition(self):
do_stuff()
self.timer(self.watcher_interval, self.check_condition).start()
这很好用。
但是,我现在无法通过 Ctrl + C 退出应用程序,因为Timer仍然在后台运行。
如何在发送键盘中断时告诉Timer退出?截至目前,我必须要么通过它的PID杀死它,要么我感到懒惰killall python
。
答案 0 :(得分:0)
计时器继承自Thread,因此在创建计时器时,通过将其daemon
实例变量设置为True
(在启动之前)来指定它是daemon thread;这样做会导致它在Python确定没有运行非守护程序线程时终止。