gpt4 book ai didi

python - 定时器的暂停/恢复功能

转载 作者:太空宇宙 更新时间:2023-11-03 20:25:06 33 4
gpt4 key购买 nike

我需要使用一个可以暂停和恢复的计时器。据我所知,Python 中只有一个计时器,它包含在 threading 包中,但我无法暂停或恢复它,只能取消它。

这是在 Python 中使用计时器的标准代码:

from threading import Timer
import time

def timeout():
print "Game over"

t = Timer(20 * 60, timeout)
t.start()

那么如何用这个定时器实现暂停/恢复功能呢?

最佳答案

import threading, time

class ResumableTimer:
def __init__(self, timeout, callback):
self.timeout = timeout
self.callback = callback
self.timer = threading.Timer(timeout, callback)
self.startTime = time.time()

def start(self):
self.timer.start()

def pause(self):
self.timer.cancel()
self.pauseTime = time.time()

def resume(self):
self.timer = threading.Timer(
self.timeout - (self.pauseTime - self.startTime),
self.callback)

self.timer.start()

你的作业:

  • 继承?
  • 异常(exception)情况?检查?
  • 比可恢复计时器更好的东西

关于python - 定时器的暂停/恢复功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57892006/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com