Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
3.916 Beiträge
 
Delphi 12 Athens
 
#6

AW: FMX unbekannten Thread synchronisieren

  Alt 5. Nov 2021, 09:50
Bei Queue/ForceQueue mußt du nur aufpassen, wenn du übergreifende Variablen verwendest, dass deren Inhalt (Objekte, Zeiger und bedingt auch dynamische Arrays) zur Ausführungszeit noch vorhanden ist. (oder für den Aufruf vorher kopiert werden)
Dankesehr für den Hinweis, himitsu.

Das ist richtig, und das mache ich standardmässig so nach dem Schema wie unten,
und kopiere mir die Variablen lokal, mit dem gleichen Namen, nur mit "A" und "L" unterschiedlich benannt.

Delphi-Quellcode:
procedure TForm.PressIt( AParam : TMyParameter );
var
  LParam : TMyParameter;
begin
  LParam := AParm;

  TThread.ForceQueue(nil,
      procedure
      begin
          TDialogService.ShowMessage( LParam.Message );
      end );

end;
Mit dieser Konfiguration gab es noch nie Probleme (Toi, Toi, Toi),
und ich kann das nur empfehlen
  Mit Zitat antworten Zitat