wxpython - Threads und Fensterereignisse

Ich habe eine wxPython-Anwendung (http://www.OpenSTV.org), die Stimmzettel nach Methoden mit mehreren Runden zählen. Ich möchte zwei Dinge tun:

(1) Bei einer großen Anzahl von Stimmzetteln kann dies etwas langsam sein. Daher möchte ich dem Benutzer einen Fortschrittsdialog anzeigen, damit er nicht den Eindruck hat, dass die Bewerbung eingefroren ist.

(2) Ich möchte dem Benutzer erlauben, Verbindungen manuell zu trennen, und dies erfordert, dass der Zählcode ein Dialogfenster anzeigt.

Um (1) zu erreichen, erstelle ich einen Thread, um den Zählcode auszuführen, und dies ermöglicht es mir, dem Benutzer einen netten Fortschrittsdialog zu präsentieren.

Das Problem dabei ist jedoch, dass der Zählcode nicht der Hauptthread ist und nur der Hauptthread in wxPython Fensterereignisse verarbeiten kann.

Ich nehme an, ich könnte stattdessen einen Thread erstellen, um den Fortschrittsdialog auszuführen, aber das scheint umständlich. Gibt es einen besseren Weg, um sowohl (1) als auch (2) zu erreichen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage