Autor Beitrag
Holgerwa
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 325

WIN XP Pro, Vista Business
Delphi 7 Pro, BDS 2006 Pro
BeitragVerfasst: Mo 07.07.08 18:50 
Hallo,

wenn man in einem Thread Aktionen durchführt, die auf VCL-Elemente zugreifen, sollte man diese Aktionen im Haupt-Thread machen, also mit Synchronize aufrufen.
(Das ist doch richtig, oder?)

Worauf aber bezieht sich das? Geht es darum, daß z.B. der Thread ein sichtbares Element verändert während der Benutzer das auch gerade mit der Maus tut?

Wären VCL-Aktionen sicher, wenn das verwendete Element nicht sichtbar ist? Beispiel: Füllen eines TreeViews, der Visible:=false ist.

Oder sollte man das grundsätzlich nicht machen, weil man nie weiß, was da alles schiefgehen kann?

Danke!
Viele Grüße,
Holger
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Mo 07.07.08 19:52 
Die VCL ist nicht thread-safe. Jede Art von Abhängigkeit zwischen visuellen und nicht-visuellen Komponenten kann zum Verhängnis werden.

Du kannst jedoch eine (exklusive) TStringList in einem Thread erzeugen, füllen und synchronisiert mit Assign einer Liste zuordnen.