wxpython - wątki i zdarzenia okna

Mam aplikację wxPython (http://www.OpenSTV.org) liczy karty do głosowania przy użyciu metod, które mają wiele rund. Chciałbym zrobić dwie rzeczy:

(1) W przypadku dużej liczby kart do głosowania może to być trochę powolne, więc chciałbym pokazać użytkownikowi okno dialogowe postępu, aby nie myślał, że aplikacja jest zamrożona.

(2) Chciałbym pozwolić użytkownikowi na ręczne zerwanie więzi, a to wymaga kodu zliczającego, aby pokazać okno dialogowe.

Aby osiągnąć (1), tworzę wątek, aby uruchomić kod zliczający, a to pozwala mi przedstawić użytkownikowi ładne okno dialogowe postępu.

Problem polega na tym, że kod zliczający nie jest głównym wątkiem i tylko główny wątek w wxPython może przetwarzać zdarzenia okna.

Przypuszczam, że mógłbym utworzyć wątek, aby zamiast tego uruchomić okno dialogowe postępu, ale wydaje się to niezręczne. Czy istnieje lepszy sposób na osiągnięcie obu (1) i (2)?

questionAnswers(2)

yourAnswerToTheQuestion