Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

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

AW: OpenDialog Problem

  Alt 23. Nov 2012, 00:48
Bei Threads sollte man gedanklich einen ganz anderen Ansatz wählen.
Ein Thread ist wie ein Baby - sämtliches Spielzeug muss ihm von seiner Mama gegeben werden.
Ein Thread sollte selbst nie in die Verlegenheit kommen irgendwelche Daten zu holen.

Beispiel:
Ein Thread soll über eine serielle Schnittstelle kommunizieren.
Die Daten dazu (COMx, Baudrate, Parity,..) stehen in einer Ini-Datei.
Anstatt dass der Thread die Ini-Datei öffnet und die Daten ausliest, hat der Thread entsprechende Properties (Baudrate, usw) und der Hauptthread liest die Ini-Datei und füttert den Thread vor dem Start mit Daten.
Dann gehen wir noch einen Schritt weiter.
Der Thread benötigt die Parameter Baudrate, Parity, usw eigentlich gar nicht.
Was er wirklich braucht ist ein geöffnetes TSerialPort-Objekt.
Delphi-Quellcode:
TKommunikationsThread = Class(TThread)
private
  FSerialPort : TSerialPort;
public
  procedure Execute; override;
  // muss von Aussen übergeben werden
  property SerialPort:TSerialPort read FSerialPort write FSerialPort;
end;
Das TSerialPort kann auch als Parameter über den Konstruktor übergeben werden.
  Mit Zitat antworten Zitat