列出所有活动的 multithreading.Timer 个对象
List all active multithreading.Timer objects
有没有办法在退出前获取所有活动的列表threading.Timer
objects in order to cancel
?否则程序会挂起等待它们完成。
我可以保留它们的列表,但是当它们发射时我也必须删除它们。相反,我想知道是否有办法获得所有这些。
如果你只需要在退出程序时取消定时器,你可以为定时器设置daemon
标志,它们将在退出时被杀死,而不是等待它们完成:
from threading import Timer
timer = Timer(10, fn)
timer.setDaemon(True)
timer.start()
threading.enumerate()
returns 将包含 Alive 计时器的列表 - 它们是 threading._Timer
.
的实例
>>> t = threading.Timer(30, foo, kwargs = d)
>>> t.start()
>>> t.isAlive()
True
>>> for thing in threading.enumerate():
if isinstance(thing, threading._Timer):
thing.cancel()
>>> t.isAlive()
False
>>>
有没有办法在退出前获取所有活动的列表threading.Timer
objects in order to cancel
?否则程序会挂起等待它们完成。
我可以保留它们的列表,但是当它们发射时我也必须删除它们。相反,我想知道是否有办法获得所有这些。
如果你只需要在退出程序时取消定时器,你可以为定时器设置daemon
标志,它们将在退出时被杀死,而不是等待它们完成:
from threading import Timer
timer = Timer(10, fn)
timer.setDaemon(True)
timer.start()
threading.enumerate()
returns 将包含 Alive 计时器的列表 - 它们是 threading._Timer
.
>>> t = threading.Timer(30, foo, kwargs = d)
>>> t.start()
>>> t.isAlive()
True
>>> for thing in threading.enumerate():
if isinstance(thing, threading._Timer):
thing.cancel()
>>> t.isAlive()
False
>>>