Zitat von
Michael_Bayer:
Sind Pointer eigentlich "Treadsafe"?
Wenn ich zb einen Eintrag in einem VirtualStringTree ändern möchte.
Ich hole mit das Node in der CriticalSection und setze einen Pointer auf seine Daten.
Kann ich jetzt ausserhalb der CriticalSection mit Hilfe des Pointers die Daten verändern? (Wenn kein anderer genau auf das Ziel des Pointers schreiben möchte)
Benutz' einfach InterlockedExchange() oder InterlockedExchangePointer() (eins von beiden war nicht deklariert in meiner Delphiversion) statt "bla := bla2" und schon bist du fein raus
Zitat von
Michael_Bayer:
EDIT: Um mal auf die
VCL zurückzukommen - sind Functionen wie "
VCL-Objekt.Refresh" oder ähnliches threadsafe?
Die
VCL ist meines Wissens vollständig nicht thread-safe.