В моем приложении wxPython у меня есть обработчик EVT_IDLE
, который вызывает некоторую функцию, которую нужно вызывать каждые 150 миллисекунд или около того. После вызова функции обработчик вызывает:
wx.CallLater(150,self._clear_idle_block_and_do)
Эта функция _clear_idle_block_and_do
в основном публикует другое событие EVT_IDLE
, продолжая цикл.
Теперь я заметил, что, когда другие виджеты в графическом интерфейсе выполняют тяжелую работу, обработчик событий EVT_IDLE
почти не вызывается! Иногда он не вызывается в течение 4 секунд, что слишком много.
Это потому, что wx.CallLater работает плохо? Могу ли я что-нибудь сделать?