Einzelnen Beitrag anzeigen

romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#17

AW: TThread: Synchronize() priorisieren?

  Alt 4. Apr 2016, 11:30
Deswegen sollst du ja auch nil als Parameter übergeben. Dann überlebt das Queue auch das Ende des Threads. Die übergebene Methode ist ja eine Anonyme Methode. Obwohl sie in deiner Thread-Methode deklariert wird, gehört sie damit nicht wirklich zu der Thread-Instanz.
Ok, also doch als anonyme Methode. Etwa so?

Delphi-Quellcode:
TThread.Queue(nil, procedure()
                   begin
                     MachWas;
                   end);
Was ich gemeint habe, ist dass die Methode nicht als Teil des Threads deklariert werden darf:

Delphi-Quellcode:
type
  TMeinThread = class(TThread)
  //...
  protected
    procedure Execute; override;
    procedure DoDataChanged;
end;

procedure TMeinThread.Execute;
begin
  //..
  TThread.Queue(nil, DoDataChanged);
end;

procedure TMeinThread.DoDataChanged;
begin
  myCustomDataSource.DataChanged;
end;
  Mit Zitat antworten Zitat