Du kannst synchronize zwar keine Parameter übergeben, aber du kannst ja in der TThread Klasse private Felder benutzen
Lesende Zugriffe sind auch zu synchronisieren, sonst kann es passieren dass du einen ungültigen Wert liest. (Vor allem: Du weißt ja normalerweise nicht, was noch alles im Getter abläuft. Canvas.Pixels[] ist so ein Kandidat wo "nur lesen" doch noch ne ganze Menge an Zeug auslöst...)