ProgressBar status ändern - langer Algorithmus

Klein0r

Erfahrenes Mitglied
Hallo zusammen!

Ich will gerade zum ersten mal eine ProgressBar nutzen um einen eventuell sehr lange andauernden Prozess (Synchronisieren von FTP-Verzeichnissen) optisch ein wenig hervorzuheben.

Nun stellt sich mit eine grundlegende Frage:
Wie wird das ganze realisiert?

Übergebe ich meine zwei Progress-Bars an das Objekt um sie von dort zu aktualisieren und neu zu zeichnen?

Oder löse ich das ganze mit Eventhandling? Also rufe ich einfach eine Funktion ab einem bestimmten Punkt auf und aktualisieren daraufhin die Progressbars in der Hauptklasse?

Was ist schlauer?
Ich denke realisieren könnte man beides - oder?

Ich meine dazu auch schonmal ein Tutorial hier gesehen zu haben aber ich finde es nicht wieder :(

lg
 
Hallo,

bei lang laufenden Prozessen die in Teilschritte zerlegt werden können bietet es
sich an den Fortschritt zu "simulieren". Dazu gibt man bei den einzelnen Teilschritten
empirisch ermittelte Fortschrittszahlen an die den Fortschritt nach Beendigung des
Teilschritts darstellen.
etwa:

Task0 10%
Task1 20%
Task2 70%
Task3 100%

Anschließend aktualisiert man den Fortschritt über einen zusätzlichen Thread der sich immer die aktuelle Fortschrittsgrenze nimmt und diese einfach bei einem "Tick" (etwa alle 2-5s) asymptotisch annähert. Ist der aktuelle Task beendet wird der nächste Task angegangen. Anschließend wird ausgehend vom aktuellen Fortschrittswert der Fortschritt wieder asymptotisch an die neue Fortschrittsgrenze angenähert. Etc.

Auf diese Weise erhält man eine ausreichend genaue Fortschrittsanzeige mit der eine Großzahl der User zufrieden gestellt werden kann ;-)

Gruß Tom
 
Zurück