AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Updates laden mit Threads. Struktur okay?

Ein Thema von TheMiller · begonnen am 6. Mär 2009
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Updates laden mit Threads. Struktur okay?

  Alt 6. Mär 2009, 15:12
Hallo Leute,

ich möchte mein "Update-System" in einen Thread auslagern. Das habe ich damals schonmal probiert, das ist mir aber jetzt nicht mehr so recht. Zumal es ziemlich wirr ist und mit Messages arbeitet. Das lief ungefähr so ab:

Zitat:
MainVLC [Update-suchen-Button] -> Updater-Klasse wird erstellt und ruft "Thread UpdateSuchen" auf. Er arbeitet und sendet Message an MainVLC mit seinen Ergebnissen.

Updates werden vom Benutzer ausgewählt, der Updater-Klasse übergeben und die startet eine Schleife in der die Downloads nacheinander durch den Download Thread geladen werden
Da hatte ich das Problem, die Ereignisse OnWork etc. von IdHTTP an die MainVCL weiterzuleiten, damit dem User auch gezeigt wird, wie weit der Fortschritt ist.

Nun würde ich es gerne so machen:

Ich würde gerne die Threads so nahe an die VCL heranholen, wie nur möglich, damit ich ohne große Probleme aus einem Thread auf die VCL zugreifen kann (Fortschrittsanzeige).

Zitat:
Also, die Updater-Klasse fällt komplett weg. Die VCL erstellt einen Thread der nach Updates sucht in diese in einer Liste anzeigt. Danach klickt der User auf "downloaden" und die VCL erstellt in einer Schleife Threads, die die Updates nacheinander Downloaden. Dabei bekommt die idHTTP-Komponente threadinterne Methoden für OnWorkBegin, OnWork etc zugewieden. In diesen Methoden wird synchronisiert auf die VCL zugegriffen und eine Prozentzahl erhöht.
Nur eine Frage dazu habe ich noch. Angenommen, ich setze das so um, dann werde ich im Download-Thread eine Variable "ParentForm" haben, die eine Referenz zur VCL-Form darstellt. Die VCL-Form hat die Methode "ZeigeDownloadFortschritt". Wenn ich den Thread programmiere, wie kann ich dann die Prozedur "ZeigeDownloadFortschritt" aus dem Thread über die ParentForm-Variable aufrufen. Folgendes geht wohl schlecht:

Synchronize(ParentForm.ZeigeDownloadFortschritt); Ziemlich viel Text - ich hoffe, ihr wisst, was ich meine und könnt mir ein paar Ratschläge geben bzw. diese Struktur so absegnen

Danke im Voraus
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz