Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
Turbo Delphi für Win32
|
Re: Konstruktor Thread - Frage
14. Feb 2008, 15:47
Hallo pronny31,
hier mal grundsätzlich der Ablauf, wie die Daten austauschen kannst
zwischen Deinem Thread und der Hauptanwendung:
Möchtest du bestimmte Daten schon bei Beginn übergeben, so
überschreibe die Methode Create und vergebe dort neue Parameter.
Diese übernimmst du noch in der Create-Methode in private Variablen
des Threads.
Wenn dein Thread nun am arbeiten ist und Daten braucht oder aber
auch Daten an die Anwendung geben will, setzt du ein Event, das
von der Anwendung aufgenommen wird.
Damit der Thread nun nicht weiterarbeitet und evtl. auch auf die
visuellen Komponenten zugreift, musst du dieses Event synchronisiert
ausgeben, d.h. im Grunde genommen, er wird solange angehalten, bis
das Ereignis in der Hauptanwendung abgearbeitet wurde.
Du kannst dein Event selbst definieren mit Parametern die du
gerne übergeben oder lesen möchtest oder übergibst gleich
die Instanz des Threads mit, in Form von "Sender" wie man
das z.B. bei den Button-Klicks und vielem anderen hat.
Um auf diesen Sender, nämlich deinen Thread, von der Hauptanwendung
innerhalb des auszuwertenden Events sinnvoll zugreifen zu können,
solltest du bestimmte Eigenschaften des Threads öffentlich machen,
d.h. also im "public"-Teil definieren.
Hat diese Übergabe oder das Auslesen der Eigenschaften stattgefunden
ist die Event-Methode beendet und der Thread bekommt wieder die
Möglichkeit weiterzuarbeiten -- nun also wenn gewollt mit den
soeben übergebenen Daten.
Probiere es mal aus und lese alles mögliche über das Thema,
dann wird's schon klappen.
Gruß
Pfoto
Jürgen Höfs
|