Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#4

AW: Win64 VCL Applikation Delphi 11.3 - not respondig

  Alt 18. Jan 2024, 16:24
dass z.B. TWinControl.Handle Getter nicht Threadsafe sind. Deshalb habe ich auch die synchronsiert bzw. in Variablen gespeichert.
Das wird vermutlich nicht reichen. Der Zugriff auf VCL-Controls aus einem Thread heraus ist eben nicht thread-safe. Selbst wenn man ein solches Handle synchronisiert erhält, bedeutet das nicht, dass es beim nächsten Mal auch noch gültig ist. VCL-Controls erzeugen immer mal wieder ihr Handle neu.

Solange die Controls permanent vorhanden sind, kann man Referenzen auf diese verwenden um die entsprechenden Aktionen synchronisiert auszuführen. Innerhalb dieser Aktion kann man auch das Handle verwenden, solange man sicher ist dass es während der Aktion nicht durch irgendwas neu erzeugt wird. Im Zweifelsfall an jeder Stelle das Handle Property verwenden und nicht irgendwo zwischenspeichern.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat