Wenn du bei einem Thread von
aussen die Felder bestücken kannst, dann hast du den Thread
absolut falsch aufgebaut.
Von aussen sollte man mit dem Thread ausschliesslich über Methoden und Eigenschaften kommunizieren können. Diese kann man
zuverlässig mit den SynchroObjekten threadsafe gestalten.
Eigentlich ist es ganz einfach: Man sorgt dafür, dass es nicht möglich ist auf einen Speicherbereich mit unterschiedlichen Threads gleichzeitig zuzugreifen.
Wenn man das mit Synchronize versucht (im MainThreadKontext), dann muss man höllisch aufpassen, dass
jeder Zugriff darauf per Synchronize erfolgt (hört sich irgendwie schon komisch an).
... eine CriticalSection beim Create des Threads und bestücken seiner Felder sollte ausreichen, da der Thread zu seiner Laufzeit nur auf seinen eigenen Speicherbereich zugreift.
hmmm, wenn du innerhalb des Konstruktors die Felder setzt und auf die von aussen (über Eigenschaften, Methoden)
nicht zugegriffen wird, dann brauchst du
gar keine CriticalSection.