Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Vom TThread eine Variable an den Hauptthread zurückgeben (https://www.delphipraxis.net/100621-vom-tthread-eine-variable-den-hauptthread-zurueckgeben.html)

hitzi 1. Okt 2007 14:54


Vom TThread eine Variable an den Hauptthread zurückgeben
 
Hallo,

wie kann ich eine simple Boolean Variable aus einem Thread (TThread genutzt) zurück an den Hauptthread geben? Über das Synchronize kann ich ja nur VCL Elemente aktualisieren. Oder steh ich jetzt komplett auf den Schlauch ... ?

Gruss

SirThornberry 1. Okt 2007 15:06

Re: Vom TThread eine Variable an den Hauptthread zurückgeben
 
was meinst du mit "geben"?
Letztendlich steht so ziemlich alles irgendwo im Speicher. Du kannst also vom Thread aus jederzeit im Speicher was ändern und aus einem anderen Thread (Hauptthread) jederzeit was aus dem Speicher auslesen. Um zu verhindern das erst die hälfte geschrieben wurde während der andere list gibt es critical sections. Oder man verwendet eben syncronize damit die dein Thread mit dem Hauptthread syncron läuft (und somit gleichzeitiger Zugriff unterbunden wird)

Pfoto 1. Okt 2007 16:52

Re: Vom TThread eine Variable an den Hauptthread zurückgeben
 
Hallo hitzi!

auch wenn man mit Synchronize keine Parameter übergeben kann,
reicht es ja, wenn du damit ein Event anstößt.

Innerhalb dieses Event wird dann einfach eine bestimmte
Variable die das Hauptprogramm bekommen soll mit im Parameter
des Events übergeben.

So könnte der Thread das Event anstoßen, wenn sich seine
Variable ändert und das Hauptprogramm liest sie synchronisiert
aus.


Gruß
Pfoto

hitzi 1. Okt 2007 20:01

Re: Vom TThread eine Variable an den Hauptthread zurückgeben
 
Danke für die Hinweise. Ich glaub das mit den Events passt am ehesten in die objektorientierte Programmierung. Deshalb versuch ich erstmal diesen Weg.

Danke und viele Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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