Forum: Programmieren allgemein
by Sir Rufo,
22. Feb 2011
Was mich nicht wundert :roll:
Werden Klassen nicht so instanziert?
MyClassVar := TMyClass.Create;
Ergo, eine CriticalSection
FKlasseCritSect := TCriticalSection.Create;
Und dann
FKlasseCritSect.Enter;
try
Forum: Programmieren allgemein
by Sir Rufo,
22. Feb 2011
Die Klasse selber mußt du auch noch ThreadSafe machen (CriticalSection).
Jeder Zugriff auf eine Variable der potentiell von unterschiedlichen Threads benutzt wird muss mit einer CriticalSection gesichert werden.
Die CS für die Property Klasse aus dem MainThread ist nur für die Ermittlung der Klasse zuständig.
beim Benutzen der Klasse ist diese CS nicht mehr aktiv und daher muss die Klasse...
Forum: Programmieren allgemein
by Sir Rufo,
22. Feb 2011
1. der Destructor sollte auf keinen Fall Free heißen (Free ist schon automatisch da und ruft den Destructor Destroy auf)!
2. Wird FSL in der Klasse instanziert? FSL := TStringList.Create;
3. Einem Thread eine public Klassen-Variable mitzugeben ist ganz schlecht ... der Zugriff darauf sollte mit Property gelöst werden
4. Der Zugriff auf eine Property muss per CriticalSection gesichert werden,...