gpt4 book ai didi

python - wxPython:使用 EVT_IDLE

转载 作者:行者123 更新时间:2023-11-28 17:55:11 25 4
gpt4 key购买 nike

我为 EVT_IDLE 定义了一个处理程序,它为我执行特定的后台任务。 (该任务是从几个进程中获取完成的工作并将其集成到某个对象中,从而在 GUI 中进行可见的更改。)

问题是当用户没有移动鼠标或做任何事情时,EVT_IDLE 不会被调用超过一次。我希望这个处理程序一直在工作。所以我尝试在处理程序的末尾调用 event.RequestMore()。可以,但现在需要大量 CPU。 (我猜它只是在该任务上过度循环。)

我愿意限制任务每秒执行的次数;我该怎么做?

或者您有其他解决方案吗?

最佳答案

像这样的事情(最多每秒执行一次):

...

def On_Idle(self, event):
if not self.queued_batch:
wx.CallLater(1000, self.Do_Batch)
self.queued_batch = True

def Do_Batch(self):
# <- insert your stuff here
self.queued_batch = False

...

哦,不要忘记在构造函数中将 self.queued_batch 设置为 False,并可能在 On_Idle 中以某种方式调用 event.RequestMore()。

关于python - wxPython:使用 EVT_IDLE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/783023/

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