![]() |
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? |
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: |
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? |
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:
![]() |
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