У меня есть приложение wxPython (http://www.OpenSTV.org), которое подсчитывает бюллетени, используя методы, которые имеют несколько раунды. Я хотел бы сделать две вещи:
(1) Для большого количества бюллетеней это может быть немного медленным, поэтому я хотел бы показать пользователю диалоговое окно прогресса, чтобы он не думал, что приложение зависло.
(2) Я хотел бы разрешить пользователю разрывать связи вручную, и для этого требуется, чтобы код подсчета отображал диалоговое окно.
Чтобы достичь (1), я создаю поток для запуска кода подсчета, и это позволяет мне представить пользователю хороший диалог прогресса.
Однако проблема заключается в том, что код подсчета не является основным потоком, и только основной поток в wxPython может обрабатывать события окна.
Я полагаю, что мог бы создать поток для запуска диалогового окна прогресса, но это кажется неудобным. Есть ли лучший способ выполнить как (1), так и (2)?