Laden...

Progressbar für Downloader einrichten, ohne dass die Anwendung "hängen" bleibt

Erstellt von Jasper vor 11 Jahren Letzter Beitrag vor 11 Jahren 789 Views
Thema geschlossen
J
Jasper Themenstarter:in
6 Beiträge seit 2012
vor 11 Jahren
Progressbar für Downloader einrichten, ohne dass die Anwendung "hängen" bleibt

Hallo miteinander,

erstmal ein tolles Forum hier, ihr habt mir mit euren Beiträgen schon sehr weitergeholfen bisher.

Ich bin aktuell dabei für eine Spielemodifikation einen Installer/Downloader/Starter zu bauen und habe dazu ein Tutorial für einen C# - Downloader gefunden, in welchem ein Code-Snippet war um dies zu realisieren.

Dies hab ich nachgebaut, erweitert das er per Zufallszahl einen Server wählt und kleine Anpassungen bezüglich dem Speicherort gemacht. Nach dem Herunterladen der Datei (.exe Datei) startet er diese und es kann installiert werden.

Nach der Installation kann der Starter dafür verwendet werden, das Spiel etwas anzupassen und Einstellunge vorzunehmen.

Nun mein Problem:
Nachdem ich auf Download drücke, bleibt die Anwendung stehen und ist nicht mehr verwendbar. Bei Test's mit Benutzern hat sich gezigt, dass diese dann nach einer Zeit währrend die Datei noch downloadet auf das Programm drücken und es sich wegen des laufenden Prozesses öfters aufhängt.

Wie kann ich also eine ProgressBar einbinden, damit der User den Status sieht? Wie man sie einbindet und weiterberechnet das er sich "füllt" weiß ich, nur wie lese ich den Downloadprozess aus und werte diesen immer wieder aus um es zu aktualisieren?

Ich wäre sehr dankbar über eure Hilfe!

Danke,
Patrick

16.807 Beiträge seit 2008
vor 11 Jahren

Hallo und willkommen.

Bitte nimm Dir - falls noch nicht geschehen - und lies Dir nochmals [Hinweis] Wie poste ich richtig? durch.
Deine Fragen laufen nämlich auf Grundlagen heraus (Punkt 1.1 und Punkt 1.1.1).

Du musst ermitteln, wie viel Bytes der Download in der Totalen hat und wie viel bereits geladen wurden.
Mittelst der Startzeit und der durchschnittlichen Downloadrate kannst Du auch in etwa die Restzeit berechnen.

Siehe auch
[FAQ] Warum blockiert mein GUI?
[FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke)

Vielen Dank und viel Erfolg weiterhin.

Thema geschlossen