patrice079 hat geschrieben:Ich muss auf das Ergebnis von self.project.parseConfig warten um weitermachen zu können aber gleichzeitig eben die Progressbar updaten?
Vorschlag: Füge den Paramter `tell_progress` zur Signatur von `parseConfig()` hinzu. Wenn dieser einen anderen Wert als `None` hat, dann wird er als Callable angesehen und innerhalb von `parseConfig()` nach jedem Zwischenschritt aufgerufen. Für diesen Parameter kannst du beim Aufruf von `parseConfig()` dann die entsprechende Methode aus deiner Progressbar übergeben.
Dadurch, dass `parseConfig()` ganz abstrakt nur ein Callable erwartet, erreichst du eine einigermaßen lose Kopplung, was zur Wiederwendbarkeit beiträgt - also falls man mal eine andere Art von Fortschrittsanzeige verwenden möchte.
Für eine richtige Fortschrittsanzeige wäre es natürlich noch sinnvoll zu wissen, an welchem Punkt des Gesamtprozesses man gerade steht. Dementprechend könnte man die Funktionalität noch etwas ausgeklügelter gestalten und z.B. vorab die Gesamtzahl an Zwischenschritten mitteilen, sofern dies ohne großen Aufwand möglich ist. `tell_progress` wäre dann entsprechend ein Callable mit (mindestens) einem Parameter, wo die Anzahl der bereits vollzogenen Zwischenschritte mitgeteilt wird. Oder man macht dies implizit (ohne zusätzliche Parameter), indem man die Anzahl der Aufrufe von `tell_progress` mitzählt und diese ins Verhältnis zur vorab angegebenen Gesamtzahl setzt. Es gibt hier, wie man sieht, verschiedene Möglichkeiten.
Was ich persönlich *nicht* machen würde, ist stumpf nach einem bestimmten Intervall die Progressbar "anzustupsen". Ich würde einen Fortschritt nur dann angeben, wenn er auch tatsächlich umgesetzt wurde, d.h. wenn der Gesamtprozess wirklich ein Stück weiter gekommen ist.