Почему простой метод вызывает сообщение основного цикла, а затем блокирует?
Здесь мне сказали кое-что, чего я не могу понять о wxPython и других инструментах GUI.
Когда я звоню GetLabel
из элемента управления "статический текст" получает событие в очереди и GetLabel
не возвращается, пока это событие не будет обработано главным циклом.
Почему событие ставится в очередь для такой простой задачи?
Почему метод не возвращает сразу, а блокирует, пока сообщение не было обработано?
1 ответ
Я не думаю, что GetLabel запускает событие. Проблема, с которой вы столкнулись в этом другом вопросе, заключается в том, что вы использовали потоки, пытаясь манипулировать GUI и получать информацию из него. Ваш поток блокирует основной поток графического интерфейса. Если бы вы вызвали GetLabel() из своего кода GUI (например, из обработчика события для кнопки), это было бы немедленно.