Почему простой метод вызывает сообщение основного цикла, а затем блокирует?

Здесь мне сказали кое-что, чего я не могу понять о wxPython и других инструментах GUI.

Когда я звоню GetLabel из элемента управления "статический текст" получает событие в очереди и GetLabel не возвращается, пока это событие не будет обработано главным циклом.

Почему событие ставится в очередь для такой простой задачи?

Почему метод не возвращает сразу, а блокирует, пока сообщение не было обработано?

1 ответ

Решение

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

Другие вопросы по тегам