Einzelnen Beitrag anzeigen

TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.174 Beiträge
 
Delphi 11 Alexandria
 
#1

TMessageManager/SendMessage

  Alt 9. Jan 2020, 17:35
Ich habe in meinem Formular dieses, um Messages zu empfangen + als Status ausgeben zu können:

Delphi-Quellcode:
 MessageManager := TMessageManager.DefaultManager;
  SubscriptionId := MessageManager.SubscribeToMessage(TMessage<UnicodeString>,
    procedure(const Sender: TObject; const M: TMessage)
    begin
      lblStatus.Text := (M as TMessage<UnicodeString>).Value;
    end);

Eine Methode, die länger braucht, wird so aufgerufen:
Delphi-Quellcode:
    TTask.Run(procedure()
    begin
      LoadXML(dlgOpenXML.FileName);
    end);
Im LoadXML wird so der Status versandt:
Die Nachricht wird so versandt:
    TMessageManager.DefaultManager.SendMessage(nil, TMessage<UnicodeString>.Create(xNode.Text), True);
Das führt aber nach ein paar 100 Nachrichten zu einer Zugriffsverletzung. Übersehe ich da etwas?
  Mit Zitat antworten Zitat