Wobei das hier Einige (
) auch schon vor 2011 gemacht haben.
Denn das ist eigentlich sogar eine der wenigen "einfachen" Möglichkeiten Parameter "threadsicher" an den Zielthrad zu übergeben.
(ohne sich eine threadsichere globale Variable anzulegen, oder gar gleich eine ganze Liste, wenn diese Methode aus mehreren Threads gleichzeitig aufgerufen werden könnte)
Delphi-Quellcode:
// innerhalb von TThread.Execute
Synchronize(procedure
begin
CallMyProgress(PercentComplete);
end);
Delphi-Quellcode:
// in Threads, die nicht von TThread abstammen oder wo man auf die TThread-Instanz keinen Zugriff hatte.
TThread.Synchronize(nil, procedure
begin
CallMyProgress(PercentComplete);
end);
Wobei man ja mindestens seit XE3 sich eine Pseudoinstanz des eigentlichen TThreads oder gar eine Instanz für etwas, daß dein TThread ist, erstellen lassen kann.
Ich glaub das ging mit TThread.CurrentThread, oder so.