Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
Turbo Delphi für Win32
|
Re: Laden von HTML-Seiten mit Multithread
4. Feb 2007, 12:44
Hi!
zu "resume"
der Thread wird ja bereits "supended" kreiert:
MyThread := TmyThread.create(True);
Das tust du in diesem Fall mit "True".
So wie du innerhalb deiner Execute-Methode auf
die Form zugreifst, muss es früher oder später knallen.
Zu verhindern, dass mehrere Threads (und evtl. die
Hauptanwendung) im selben Moment auf die VCLs einer Form
oder anderere Ressourcen zugreifen, meint man mit synchronisieren.
Die Werte aus deiner Liste musst du dir also so beschaffen,
dass es nicht zu Kollisionen kommen kann.
Dazu war auch das Beispiel mit der Jobliste gut, auf das
ich weiter oben verlinkt hatte.
Siehe dir dazu das Objekt "TCriticalSection" an.
Es lässt z.B. in den aufgeführten Funktionen jeweils nur
1 Thread den darin enthaltenen Code ausführen -- die anderen
müssen solange draußen bleiben.
Um Daten mit den Komponenten auf deiner Form zu synchronisieren
gibt es für das Thread-Objekt die Methode Synchronize.
Schau dir dazu auch mal das Beispiel im Delphi Demo-Verzeichnis an.
Diese Dinge müsstest du also bei der Implementierung deiner
Threads berücksichtigen. Schau dich doch nochmal im Forum um;
gerade über das Thema Up-Downloads innerhalb eines Threads gibt es
hier schon eine Menge.
Gruß
Pfoto
Jürgen Höfs Jürgen Höfs / picoly.de
|