Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Thread startet execute nicht

  Alt 23. Mai 2013, 08:42
Der gesamte TCheckThread.execute wird vom Compiler weg optimiert, Ich habe schon einiges versucht, dazu aber keine Lösung gefunden.
Da es sich um eine virtuelle Methode handelt, kann der Compiler gar nicht wissen ob diese zur Laufzeit verwendet wird oder nicht.
Deshalb kann diese auch eigentlich nicht wegoptimiert werden.

Gründe die mir einfallen:
- Der gepostete Quelltext stimmt mit dem tatsächlichen nicht überein und das "override;" wurde bei der Deklaration von "Execute" vergessen.
- Die Unit gehört nicht zu dem Projekt und wird deshalb nicht mehr compiliert, statt dessen wird eine alte "*.dcu" eingebunden.

Unabhängig vom aktuellen Problem sind mir die Property aufgefallen.
Der Zugriff auf Variablen aus mehreren Threads muss auf jeden Fall synchronisiert werden (z.B. Get- und Setmethoden mit TCriticalSection).
  Mit Zitat antworten Zitat