TThread bietet Synchronize in mehreren Varianten, einige als Klassen-Methode, welche man direkt über
TThread.Synchronize(nil, MyProc);
nutzen kann.
Entweder mit einer Prozedur (
TThreadProcedure) und womöglich mit einer globalen Variable (neuerdings auch als anonyme Methode),
oder als Methode (
TThreadMethod) irgendeiner Klasse, mit einem Feld in dieser Klasse.