Thread - Trotz while-Schleife auf User-Interface reagieren (ohne Thread)
-
Hallo,
ich habe in meinen Programm eine While-Schleife, die über eine I/O Schnittstelle mit einer Maschine kommuniziert.
Nun mögchte ich den Ablauf über ein Userinterface verändern können. (Setzen eine Checkbox). Leider reagiert meine Form auf keine eingaben. Wie kann ich meine Form dazu bringen, dass sie diese Eingaben verarbeitet.Wenn möglich ohne eigenen Thread.
Danke
-
Ich glaube das ist nur mit Threads möglich.
-
Das geht auch ohne eigenen Thread - ich hatte mal versehentlich sowas gebaut, als ich noch nicht wußte, was Threads sind.
Baue in Deine while SChleife einfach eine Möglichkeit ein, System Nachrichten weiterzugeben:Bei mir funktionierte (wie gesagt versehentlich) das. (Ja, auch mit MFC.)
Aber die Performance ist mit eigenem Thread deutlich besser!
-
Naja geht auch ohne Threads. Du könntest in deiner Whileschleife selber die Messages behandeln.
MSG msg; while(...) { while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) != 0) { if(msg.message == WM_QUIT) { // Aus dem ganzen raus. } else { TranslateMessage(&msg); DispatchMessage(&msg); } } }
So wird immer, wenn die Schleife neu durchlaufen wird, zuerst alle Nachrichten abgehandelt. Aber sehr sinnvoll ist die Lösung nicht. Mit Threads würde das wesentlich besser gehen.
Grüssli
-
Danke.
funktioniert super