Zitat von
schweindi:
1) die Memo Sachen habe ich nur eingebaut, damit ich sehe, was überhaupt gesendet/ empfangen wird
Ist aber nunmal verboten, da die
VCL nicht threadsicher ist.
Zitat von
schweindi:
2) Die Schleife wird sofort erreicht, doch sie wird erst bei einem Inputchar (eben RXCHAR) beendet.
Du bekommst aber innerhalb der Schleife keinen neuen Wert für signaled - da fehlt einfach etwas.
Zitat von
schweindi:
Deshalb wollte ich eben, als zweite Bedingung (Stopped = True) einsetzen, damit ich, wenn ich zb die Verbindung zum
Com Port unterbreche den Thread anhalten kann.
Das ist auch OK.
Zitat von
schweindi:
3) Wenn ich das Programm ausführe wird die Memo mit "Signaled : DWORD" gefüllt, eben jedes Mal kommt eine 0, da kein Char empfangen wurde - dh die Schleife wird ausgeführt.
Ja, aber der Wert von Signaled ändert sich nicht innerhalb der Schleife.
Zitat von
schweindi:
Es soll ja nach der Procedure Stop nicht mehr auf Input gewartet werden (also schleife soll nicht mehr ausgeführt werden).
Und das dachte ich kann ich mir der Abbruchbedingung "until (Signaled = EV_RXCHAR) or (Stopped = True);" erreichen.
Schon, aber der Aufruf von Input wird nicht durch Stopped verhindert und da rufst du DoThread wieder auf und der Zirkus geht weiter.