나를 위해 특정 백그라운드 작업을 수행하는 EVT_IDLE
처리기를 정의했습니다. (그 작업은 몇 가지 프로세스에서 완료된 작업을 가져와 일부 개체에 통합하여 GUI에서 눈에 보이는 변화를 만들어내는 것입니다.)wxPython : EVT_IDLE 사용
문제는 사용자가 마우스를 움직이거나 아무것도하지 않을 때 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
...
아, 그리고 어떤 방법으로 event.RequestMore()를 생성자에서 False로 self.queued_batch을 설정하고 어쩌면 전화하는 것을 잊지 마세요 :이 같은