Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Threads (tpIdle) blokieren Anwendung

  Alt 15. Jun 2012, 08:36
Hast du das EVA-Prinzip (Eingabe-Verarbeitung-Ausgabe) beachtet?
Ein Thread-Objekt bekommt alle seine Inputdaten als Kopie schon vor dem Start übergeben.
(z.B. über Properties der Threadklasse)
Soll ein Thread z.B. Daten per FTP herunterladen, dann bekommt er ein fertig initialisiertes IdFtpClient-Objekt übergeben.
Der Hauptthread gibt dem Thread von Aussen alles was er braucht; der Thread soll sich um nichts kümmern müssen.

Während der Thread läuft sollte die Synchronisierung mit dem Hauptthread auf ein Minimum beschränkt bleiben.
Nachdem der Thread fertig ist präsentiert er seine Ergebnisse über "Output"-Properties.
Der Hauptthread (benachrichtigt über das Event OnTerminate) holt sich die Daten ab und vereinigt sie ggf. mit den Daten der anderen Threads.

Natürlich kann diese Vorgehensweise nicht immer so eingehalten werden, weil die Aufgaben zu verschieden sind, aber es hat grosse Vorteile wenn man so vorgehen kann.

Geändert von sx2008 (15. Jun 2012 um 08:41 Uhr)
  Mit Zitat antworten Zitat