Das ist ein (hoffentlich) einfaches Beispiel, ohne große Trennung zwischen Worker-Thread und GUI. Das ist nicht unbedingt empfehlenswert, aber es verdeutlicht, etwas einfacher durchschaubar, dass man Regeln einhalten muss, wenn man Threads und die GUI (die im Hauptthread läuft) miteinander kommunizieren lassen möchte.
http://www.python-forum.de/post-98784.html
Das nächste Beispiel verdeutlich, wie man eine Trennung zwischen Worker-Thread und GUI vewirklichen könnte. Eine recht einfache Möglichkeit: Man übergibt beim Erstellen des Worker-Threads eine Funktion die vom Thread laufend aufgerufen wird. Diese Funktion ruft über wx.CallAfter eine andere Funktion auf, die sich darum kümmert, dass der ProgressDialog einen neuen Wert bekommt. Außerdem wird auch abgefragt, ob der Benutzer den "Abbruch"-Button gedrückt hat. Wenn Ja, dann wird der Thread abgebrochen.
http://www.python-forum.de/post-98790.html
mfg
Gerold
