Судя по всему, "CallDuring" - это не более чем простой вызов любой функции, которую вы хотите.Он будет вызван именно тогда, когда вы это называете.Есть ли причина, по которой прямой вызов не решает вашу проблему?
Однако вы говорите своей программе, что она спит.Никакое количество «звонка во время» не поможет вам, так как вы кладете все приложение в режим сна.Может быть, вы думаете, что sleep
- хорошая симуляция «реального» кода, но это не так.Вы фактически говорите своей программе «остановить всю обработку», которая включает обновления экрана.
Суть вашей проблемы в том, что вы не позволяете циклу обработки событий перерисовывать события.Вы можете попытаться вызвать wx.Yield () в вашем цикле, но наличие большого и продолжительного цикла в главном потоке программы с графическим интерфейсом - это запах кода.Почти наверняка есть лучший способ подойти к вашей проблеме.
Лучший совет, который я могу дать, это поиск по "wxpython long running task".Скорее всего, первым попаданием станет страница wxpywiki под названием " Long Running Tasks ", которая может оказаться для вас полезной.