温馨提示×

Timer.cancel()后有什么方法重新启用原有任务

小云
282
2023-08-05 21:33:43
栏目: 编程语言

当调用Timer.cancel()方法取消一个任务后,无法直接重新启用该任务。取消的任务会被从Timer中移除,因此无法再次调用该任务。

如果想要重新启用原有任务,可以创建一个新的Timer对象,并将原有的任务添加到新的Timer中重新调度。示例如下:

import time
from threading import Timer
def my_task():
print("Task is running...")
# 执行任务的代码
# 创建一个新的Timer对象
timer = Timer(10, my_task)
# 启动新的Timer对象
timer.start()
# 等待一段时间后取消任务
time.sleep(5)
timer.cancel()
# 等待一段时间后重新启动任务
time.sleep(5)
# 创建一个新的Timer对象
new_timer = Timer(10, my_task)
# 启动新的Timer对象
new_timer.start()

在上面的示例中,首先创建了一个Timer对象并启动了任务。然后等待5秒后取消了任务,并在再等待5秒后重新创建了一个Timer对象并启动了原有的任务。这样就实现了重新启用原有任务的效果。

0