Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Message Queue monitoren (https://www.delphipraxis.net/165112-message-queue-monitoren.html)

iphi 15. Dez 2011 07:34

Message Queue monitoren
 
Hallo,

bei meinem Programm passiert ziemlich viel durch diverse Timer gesteuert, also durch Windows Messages.
Dabei kommt es offenbar zuweilen vor, dass die Messages häufiger eintreffen als sie abgearbeitet werden können, was langfristig zum "Einfrieren" des Programmes führt.

Gibt es eine Möglichkeit, den Messagestack zu überwachen mit dem Ziel in den Programmablauf einzugreifen, wenn die Anzahl der noch nicht abgearbeiteten Messages einen kritischen Wert übersteigt?

himitsu 15. Dez 2011 07:46

AW: Message Queue monitoren
 
Einfach alle Bearbeitungen aus dem Hauptthread raus, welche länger dauern (könnten), egal ob die Queue jetzt schon voll ist oder noch voll werden könnte.



"SendMessage" > Google > MSDN > und nun schau mal, ob du Links irgendwas mit sowas wie "Status" im Namen findest. :angle2:

iphi 15. Dez 2011 07:58

AW: Message Queue monitoren
 
Das hilft gegen das Einfrieren, ja.
Ich kann mir aber trotzdem nicht erlauben, dass die Aufgaben schneller wachsen als sie abgearbeitet werden können.
Wo werden denn die Windows Messages gesammelt? Gibt es denn keine Möglichkeit, eine Liste der noch nicht abgearbeiteten Messages zu erhalten?

himitsu 15. Dez 2011 08:13

AW: Message Queue monitoren
 
Nein, hilft es nicht, denn ob die Anwendung hängt oder nicht, hängt nicht von der Größe ab.

Es braucht nur eine einzige Message Prozedur/Methode welche hängt/ewig braucht und schon war's das.


Zitat:

Zitat von iphi (Beitrag 1141498)
Wo werden denn die Windows Messages gesammelt?

Das wird ganz genau im MSDN erklärt.

Zitat:

Zitat von iphi (Beitrag 1141498)
Gibt es denn keine Möglichkeit, eine Liste der noch nicht abgearbeiteten Messages zu erhalten?

Es ist eine Queue ... reicht das als Antwort? (zur Verfügung stehende Befehle stehen, man mag es nicht glauben, im MSDN)

Medium 15. Dez 2011 08:27

AW: Message Queue monitoren
 
Das schreit doch geradezu nach Multithreading (mit Loadmanagement).


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz