0

当我启动我的瓶子应用程序时,一个对象会创建一个永远运行的计时器:

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因为计时器仍在后台运行。

发送键盘中断时如何告诉定时器退出?到目前为止,我要么通过它的 PID 杀死它,要么通过killall python.

4

1 回答 1

0

计时器继承自 Thread,因此在创建计时器时,通过将其实例变量设置为(在启动它之前)来指定它是一个守护线程;这样做会导致它在 Python 确定没有非守护线程正在运行时终止。daemonTrue

于 2013-03-26T07:08:50.010 回答