等级: 免费版
- 注册:
- 2023-9-29
- 曾用名:
|

楼主 |
发表于 2025-6-11 15:45
|
显示全部楼层
大侠, 我测试过, 基于独立线程的定时器不能发挥定时作用. 我这么问,是希望你们去验证下. 希望你们能解决这个问题.
如下是我的定时器类的代码:
###########################################################
# (独立线程)定时器类
###########################################################
import threading
import time
class MyTimer:
def __init__(self, interval, function, args=None, kwargs=None):
self.interval = interval
self.function = function
self.args = args if args is not None else []
self.kwargs = kwargs if kwargs is not None else {}
self.event_stop = threading.Event()
self.event_pause = threading.Event()
self.thread = threading.Thread(target=self.run)
def run(self):
while not self.event_stop.wait(self.interval):
if not self.event_pause.is_set():
try:
self.function(*self.args, **self.kwargs)
except Exception as e:
pass
else:
# 暂停时等待事件被清除
self.event_pause.wait()
print(f"MyTimer thread exit")
def start(self):
self.event_pause.clear() # 确保定时器启动时未处于暂停状态
self.thread.start()
def pause(self):
self.event_pause.set()
def resume(self):
self.event_pause.clear()
def cancel(self):
self.event_stop.set() |
|