Thread
-
Kurze Erklärung.
Mit Start des Dialoges wird ein Thread gestartet(AfxBeginThread), der im Hintergrund etwas macht solange der Dialog existiert.
Auf Tastendruck wird ein zweiter Thread gestartet, der ca. 10sec arbeitet. Ich lege den Dialog für diese 10 sec schlafen (Sleep) um die Ausführung des 2. threads abzuwarten.Jetzt die Frage.
Warum wird der 1. Thread unterbrochen (oder keine Rechenzeit mehr), sobald die Taste gedrückt wird. Und warum wird Thread 2 normal ausgeführt?Habe schon die Priorität von Thread 1 erhöht, aber nur mit mäßigem (sprich keinem) Erfolg.
THX.
-
Du musst dem 2. Thread sagen, dass die Ausführung unterbrochen werden darf ( z.B. durch Sleep(0))
-
Das Problem ist nicht, daß der andere Thread die Rechenzeit nimmt, sondern sobald ich Sleep im Dialog einfüge wird die Ausführung von Thread 1 sofort unterbrochen, wogegen Thread 2 normal weiterläuft.
Ich kapiers nicht?
Gibts ne Möglichkeit den Dialog anders zu unterbrechen?
[ Dieser Beitrag wurde am 05.11.2002 um 10:46 Uhr von nö editiert. ]
-
Timer oder Thread?
^Das könnte dir weiterhelfen...devil
-
Das Problem mit Sleep() ist, dass der Thread, in dem diese Funktion aufgerufen wurde, so lange auch wirklich "schläft".
Will man eine Pause, aber dabei den Thread weiter ansprechen können,
muss man mit Windows-Timern arbeiten.braha
-
vielleicht hilft:
http://mitglied.lycos.de/ehenkes/mfc_einsteigerbuch_kapitel17.htm
-
Sleep in einem Dialog ist sowieso nicht das beste vom EI.
Dafür sind ja Dialoge da um eine Benutzerinteraktion auszuführen.