Thema: Delphi VCL not thread save

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.035 Beiträge
 
Delphi 12 Athens
 
#4

AW: VCL not thread save

  Alt 6. Mär 2014, 15:07
SendMessage/PostMessage sind erstmal thread-save und Funktionen, welche darüber laufen (GetWindowText usw.),
da sie praktisch selber die Zugriffe in den Thread reinsynchronisieren, in welchem die angesprochende Komponente erstellt wurde (Aufruf von CreateWindow).

Meistens ist wirklich die VCL selber nicht thread-save und da müsstest du erstmal alle Methoden und Property sämtlicher VCL-Komponenten absichern. (z.B. über eine CS oder via Messages)


Und wenn du dann in 2+ Jahren damit fertig bist, dann darfst du die restlichen Lücken suchen.


Lösung: Die VCL ist nicht thradsave und an den "wenigen" Stellen in anderen Treads mußt du die zugriffe eben synchronisieren.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 6. Mär 2014 um 15:11 Uhr)
  Mit Zitat antworten Zitat