Schleife parallel laufen lassen

buschke

Mitglied
Hallo,
ich habe ein Programm geschrieben, welches über die serielle Schnittstelle Positionsdaten an einen Roboter überträgt, die dann von diesem Roboter angefahren werden sollen. Beim Erreichen der Position schickt der Robbi eine Nachricht über die serielle Schnittstelle an das Programm zurück, so daß der nächste Datensatz verschickt werden kann. Momentan läuft diese Schleife im Hauptprogramm. Problem: Ich kann wärend des gesamten Verfahrprozeßes nichts machen. Ich will diese Schleife nun parallel zum Hauptprogramm laufen lassen. Außerdem soll die Schleife durch einen Button-Klick unterbrochen bzw. beendet werden können. Wie kann ich das machen? Kann ich das durch einen CThread machen und wenn ja, wie funktioniert dabei die Kommunikation zum Hauptprogramm?

Vielen Dank

buschke
 
Ja du kannst das über threads machen (CThread).

Zur Kommunikation kannst du entweder globale Variablen nehmen
(sollte man nicht machen, mach ich aber trotzdem manchmal. Ich böser ich :) ).

Oder du kannst dem Thread einen Pointer übergeben. zb von deiner Dialogklasse.

Mfg Col.Blake
 
Hi,
hab das ganze jetzt mit AfxBeginThread() gelöst. das einzige Problem ist jetzt noch die Unterbrechung des Threads. Das Abbrechen der Schleife und somit des Threads ist kein Problem, aber ich möchte eine Unterbrechung des Threads im Dialog herstellen. Die Schleife soll aber nach der Unterbrechung ganau an der Stelle weitergehen. gibt es vielleicht für den Thread sowas wie einen WaitUntil-Befehl womit der Thread solange nicht weiterläuft, bis im Hauptprogram irgendetwas bestimmtes passiert ist?

Danke,
buschke
 
Zurück