Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#24

AW: Schleifenabbruch durch Esc Taste...

  Alt 7. Nov 2014, 14:08
Soweit ich mich erinnere, muss der Thread schon selber Bescheid geben, wenn er unterbrochen werden könnte, meist durch API-Aufrufe.
Definitiv nicht. Sleep gibt den Prozessor freiwillig ab, blockierende Systemaufrufe auch. Ansonsten sind Threads präemptiv, dh. dem Thread wird die CPU entrissen wann immer das Betriebsystem Lust dazu hat.

Dann kann der Thread den Prozess lahmlegen. [...] Soweit ich weiß, unterbricht Windows die Threads nicht selbst, sondern nur die Prozesse...
Man unterscheidet User-Level-Threads und System-Level-Threads. Von User-Level-Threads hat das System keine Ahnung und sie laufen nicht parallel. Unter Windows könnten das Fibers (sind eher Coroutinen) sein, man könnte es auch selbst implementieren. System-Level-Threads sind dem System bekannt und können echt parallel laufen. Die normalen Threads, die man in der Regel benutzt, sind System-Level-Threads.

Ich vermute, dass der GUI-Thread derselbe ist wie der der Schleife - und da der mit der Schleife zu tun hat, kommt er nicht mehr zum Bearbeiten der GUI.
Ich auch ... schon weil das in einem Ereignishandler läuft, der vermutlich vom Mainthread aufgerufen wird. Dann sollte ProzessMessages aber ausreichen, da es der GUI nicht helfen sollte, wenn der Thread die Kontrolle abgibt.


Deswegen: Irgendwas läuft da verkehrt
  Mit Zitat antworten Zitat