WaitCommEvent
-
Hallo,
ich lasse WaitCommEvent in einem Thread laufen und möchte aber gerne auf Anweisung des Benutzers den Comport schließen.
Wenn ich das versuche, hängt sich das Programm allerdings auf. Ich denke es liegt daran, weil ich in meinem Thread eine Endlosschleife habe, die auf WaitCommEvent wartet bzw. die Events bearbeitet.
Wie kann ich den Comport dennoch schließen, auch wenn ich noch in WaitCommEvent hänge? Oder wie steige ich manuell aus WaitCommEvent aus?CU Fred
-
Du solltest den Port mit FILE_FLAG_OVERLAPPED öffnen. Wenn Du nun WaitCommEvent aufrufst, gibst Du zusätzlich eine OVERLAPPED-Struktur mit an. Das Event, das Du über die Struktur übergibst, wird signalisiert, wenn ein Ereignis eintritt.
Du solltest aber auf zwei Events warten (WaitForMultipleObjects). Das erste Event ist das Event, das Du an WaitCommEvent weitergibst. Das zweite Event signalisierst Du von aussen selber, und zwar dann, wenn Du den Thread beenden willst.
-
Ah ja, das sieht jetzt schon ganz gut aus bei mir.
Ich musste nur noch meine Read / Write Routinen etwas anpassen (der letzte Parameter muss auch ein OVERLAPPED sein), aber ich glaube es läuft jetzt alles so wie es auch laufen sollTHX!
CU Fred