Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - TThread soll ein Ereignis auslöen


NemesisoD - Di 18.03.08 11:51
Titel: TThread soll ein Ereignis auslöen
Hallo zusammen,

ich habe ein kleines Problem.

Ich schreibe zurzeit ein Programm welches Daten aus dem Microsoft Flugsimulator 2004 auslesen soll, und über einen virtuellen COM-Port an eine Elektronik schicken soll.

Dazu habe ich ein zusätzliches Thread gestartet, welches die Variablen Pollt. Nun soll dem Haupt-Thread über ein Event mitgeteilt werden OHNE das das Neben-Thread auf des Haup-Thread warten muss.

Anderesherum muss aber auch das Neben-Thread vom Haupt-Thread erfahren können, das die Elektronik Werte hat die zum Flugsimulator hin geschrieben werden müssen, auch wieder ohne das das Haupt-Thread warten muss.

Gibt es dafür eine möglichkeit das zu realisieren, oder komme ich ums synchronisieren nich drumherum???

Danke
Michael


Gausi - Di 18.03.08 11:58

Wenn keine Synchronisierung nötig ist, weil Thread und Nebenthread nicht auf die gleichen Daten zugreifen, kannst du vom Nebenthread mit PostMessage eine Nachricht an den Hauptthread (bzw. an die Mainform der Anwendung) senden.


NemesisoD - Di 18.03.08 20:47

Danke für deine antwort,

ich bin bezüglich Threads und so noch NewBi, bin bisher immer mit Timern ausgekommen, da ich meistens nur kleiner Programme geschrieben habe.
Naja, genau genommen ist dieses Projekt vom Rechenaufwand auch nicht sonderlich groß, nur das ich möglichst schnell die Werte aus dem Flugsimulator pollen muss, und da mit nem Timer zu langsam geht. In einer Endlosschleife in einem Thread ausgelagert würde das aber schneller gehen.

Eine Synchronisation ist nötig, da auch von der Elektronik Daten empfangen werden müssen.

Würde mich über einen kurzen Beispiel-Code sehr freuen.

Michael