AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Message Queue monitoren

Ein Thema von iphi · begonnen am 15. Dez 2011 · letzter Beitrag vom 15. Dez 2011
Antwort Antwort
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#1

Message Queue monitoren

  Alt 15. Dez 2011, 07:34
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#2

AW: Message Queue monitoren

  Alt 15. Dez 2011, 07:46
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (15. Dez 2011 um 07:49 Uhr)
  Mit Zitat antworten Zitat
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#3

AW: Message Queue monitoren

  Alt 15. Dez 2011, 07:58
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#4

AW: Message Queue monitoren

  Alt 15. Dez 2011, 08:13
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.


Wo werden denn die Windows Messages gesammelt?
Das wird ganz genau im MSDN erklärt.

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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (15. Dez 2011 um 08:17 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Message Queue monitoren

  Alt 15. Dez 2011, 08:27
Das schreit doch geradezu nach Multithreading (mit Loadmanagement).
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz