Thema: Delphi "OnIdle" per WinAPI

Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: "OnIdle" per WinAPI

  Alt 3. Feb 2007, 16:50
Zitat von 3_of_8:
Verstehe ich ehrlich gesagt nicht, denn die Schleife wird ja ständig abgearbeitet, nicht nur wenn grad Messages da sind.
Das denkst du. Es besteht aber ein Unterschied zwischen GetMessage() und PeekMessage(..., PM_REMOVE). GetMessage() ruft intern WaitMessage() auf, womit GetMessage() nur zurückkehrt, wenn eine Botschaft vorhanden ist. Ist keine da, wird der aktuelle Thread schlafen gelegt bis eine Message kommt. Da z.B Application.ProcessMessages PeekMessage() benutzt schnallt die CPU belastung dabei auf 100% hoch, wenn es in einer Schleife ausgeführt wird; wohingegen GetMessage() nahezu 0% CPU Last verschlinkt.
  Mit Zitat antworten Zitat