Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: TBitmap ist NICHT threadsave

  Alt 14. Jun 2016, 15:40
Die Aussage von Marco Cantu dazu lautet "TBitmap ist niemals für die Verwendung ausserhalb des MainThreads gedacht gewesen." (egal ob VCL/FMX).

Von daher ist diese Erkenntnis nicht wirklich neu oder überraschend.
Vorausgesetzt man geht davon aus dass die offizielle Doku nicht reicht und man zusätzlich immer Community-Foren, Twitter, Google und sonstwas-Accounts von bestimmten Leuten folgen muss um die Bibliotheken fehlerfrei verwenden zu können.
Wieso das denn jetzt?

Mir war eigentlich schon immer bewusst, dass alles was mit VCL zu tun hat nicht threadsafe ist. Analog gilt das auch für FMX.

Wenn man nicht weiß, wozu die Klasse XY nun gehört, dann schaut man sich den Namespace an und weiß sofort, wo man kein threadsafe erwarten kann
Delphi-Quellcode:
Vcl.Graphics.TBitmap // <- Vcl davor => NEIN
FMX.Graphics.TBitmap // <- FMX davor => NEIN
Prinzipiell ist eigentlich alles erst einmal als nicht threadsafe anzusehen. Die Dokumentation sollte es explizit hervorheben was threadsafe ist und nicht umgekehrt, sonst sieht man vor lauter nicht threadsafe den Thread nicht mehr.

VCL und FMX sind zudem immer noch als MainThread-Affin anzusehen (darum geht es hier eigentlich und nicht um threadsafe)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (14. Jun 2016 um 15:44 Uhr)
  Mit Zitat antworten Zitat