Du musst Dir überlegen, in wessen Kontext die Variable lebt.
Wenn z.B. Thread1 irgendetwas deklariert, verwendet oder kontrolliert, dann packst Du die Eigenschaft in Thread1:
Delphi-Quellcode:
Type
TMyThread = Class (TThread)
Private
fMyCS : TCriticalSection;
Public
Property MyValue : TSomeType Read GetValue Write SetValue;
End;
...
Oder du deklarierst Dir eine eigene Klasse, die den threadsicheren Zugriff implementiert. Das würde ich empfehlen, wenn die Eigentusverhältnisse nicht eindeutig geklärt sind. Alles eine Frage der Sichtweise: Die Implementierung ist in jedem Fall ähnlich.