AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Grund herausfinden, warum PostMessage() nicht funktioniert hat
Thema durchsuchen
Ansicht
Themen-Optionen

Grund herausfinden, warum PostMessage() nicht funktioniert hat

Ein Thema von s.h.a.r.k · begonnen am 8. Mär 2011 · letzter Beitrag vom 9. Mär 2011
 
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#16

AW: Grund herausfinden, warum PostMessage() nicht funktioniert hat

  Alt 9. Mär 2011, 17:52
Die Grenzen für die Anzahl der Messages kenne ich schon. Wobei ich mir leicht vorstellen kann, dass diese mal voll läuft, wenn ein Programmierer z.B. eine Berechnung über mehrere Sekunden laufen lässt (ohne Threads) und in jedem Schleifendruchgang mind. eine Log-Meldung erzeugt. So können schnell 10000 Meldungen zusammen kommen, ohne dass diese Abgearbeitet werden. Ein Application.ProcessMessages könnte das beheben, macht meine Log-Klasse dann aber wieder langsamer UND ich könnte dann eigentlich gleich mit Events arbeiten.

Bisher ist das Konzept so ausgelegt, dass jede Log-Message ein PostMessage() verursucht, um die einzelnen Log-Module (Datei-Modul und Log-ListBox gibts hier im Moment) zu benachrichtigen. Jedem Log-Modul wird ein Log-Message-Objekt erzeugt und die Referenz darauf wird via PostMessage verschickt.

Ich habe im Moment folgende Idee im Kopf: um dem "Überlauf-Problem" von vorn herein aus dem Weg zu gehen, baue ich die Benachrichtigung so um, dass das PostMessage dem Modul nur signalisiert, dass neue Nachrichten vorhanden sind, enthält somit keinerlei Referenz auf die neue Log-Nachricht. Dann schaut das Modul in eine entsprechende Liste und holt sich alle neuen Log-Nachrichten selbst ab. Ist die Message-Queue voll, so kommt die Benachrichtigung zwar nicht an, aber evtl. gelingt dies dann später. Es gibt noch ein paar Haken dabei, aber vielleicht klappt das ja besser, mal sehen.

Insgesamt glaube ich, dass meine Fragen nun aber ausreichend beantwortet wurden und das Konzept-Problem hier nicht mehr so ganz her gehört. Danke schon mal an alle
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
 


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 16:24 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