Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Fehler nach Umstellung auf PostMessage

  Alt 30. Jun 2016, 08:26
Zitat:
Speicher wieder freigeben.
Wenn du nicht warten kannst auf das was du in den Speicher schreibst.
Wie willst du es dann wieder freigeben.
Wenn ich das richtig verstanden habe, gibt der Empfänger der Nachricht OnRX_Msg den Speicher wieder frei. Es bleibt natürlich noch nachzuweisen, daß auch wirklich alle mit PostMessage verschickten Nachrichten in dem besagten Event ankommen. Allerdings würde ich erwarten, daß das schon vorher aufgefallen wäre.
https://msdn.microsoft.com/de-de/library/bb979347.aspx

Beim arbeiten mit der Seriellen Schnittstelle würde ich meine Daten nicht in einer Warteschlange hinterlegen sondern diese Direkt verarbeiten.
Der Buffer der Schnittstelle hat nur einen Begrenzten Speicher irgendwann läuft dieser über (ist nichts mehr frei)
Zudem reserviert er Speicher versucht diesen zu löschen obwohl er gar nicht weis ob die Daten auch verarbeitet wurden.

Zitat:
Ich muss aber gestehen, daß ich mit Delphi 6 nicht mehr so auf dem Laufenden bin.
Egal welcher Delphi Version man unterliegt ist bei allen das gleiche.

EDIT:
Auf der anderen Seite sehe ich das er seinem Thread ein Property RX_Msg spendiert hat.
Diese sollte nach dem Empfang OnRX_Msg anspringen welche dann den allokierten Speicher wieder freigibt.
Die Frage wäre dann nur noch ob der Pointer dann noch gültig ist oder die Botschaft Schlange nicht schon voll ist.


gruss

Geändert von EWeiss (30. Jun 2016 um 08:50 Uhr)
  Mit Zitat antworten Zitat