Zitat:
Nur wie realisiere ich das Abfragen über die Threads?
Leider funktioniert überhaupt nichts
Welche Möglichkeiten habe ich?
Womit
genau hast du denn Probleme? Ich versuchs mal etwas allgemeiner...
_______________________________
Eine TThread-Instanz ist ein Objekt, das in der "Execute"-Methode parallel zum Hauptprogramm (welches in einem eigenen Thread läuft) irgendwelche Anweisungen abarbeitet. Wenn nun zwei verschiedene Threads auf ein gemeinsames Datum (z.B. einen String) zugreifen müssen, kann es dazu kommen, dass ein Datum gleichzeitig gelesen und geschrieben wird. Dadurch wird der Wert des Datums unbestimmt und es kommt zu
Fehlern.
Um das zu verhindern, müssen Zugriffe auf gemeinsame Daten synchronisiert werden. Man muss irgendwie dafür sorgen, dass das Datum, auf das man zugreift, konsistent ist. Eine einfache Methode dafür sind synchronisierte
Ereignisse. Im Wesentlichen werden dabei einfach alle anderen Threads für die Dauer eines Eregnisses angehalten:
Ruft also ein Thread ein Ereignis mit der Methode
TThread.Synchronize auf, hat man in diesem Ereignis gesicherten Zugriff, insbesondere auf die Eigenschaften von
VCL-Komponenten wie Labels, Edits, etc. Lässt man das synchronize weg, muss man "manuell" mit einer Instanz von
TCriticalSection für Konsistenz sorgen.
_______________________________
Also wo hakt es denn? Ist das ganze Konzept mit Klassen, Ereignissen usw. schon klar? Hast du schonmal Luckies Thread-Tutorial durchgelesen?
Edit: du kannst für mehr Lesbarkeit Delphi-Code mit dem [Delphi]-Tag anstelle des [Code] Tags markieren
Dani H.
At Least I Can Say I Tried