| 
 等级: 免费版 
注册: 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()
 | 
 |