Einzelnen Beitrag anzeigen

Bernd Ua

Registriert seit: 10. Nov 2003
Ort: Lindhorst
87 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: TThread mit WaitForMultipleObjects in DLL arbeitet nicht

  Alt 16. Nov 2003, 12:21
Zitat:
Ich habe nur im TimerThread Synchronize weggelassen und schon gings
So war das nicht gemeint, mit nicht verwenden!!!!!

Dein Eventhandler im Hauptprogramm läuft dann im aufrufenden Thread und das
wirst Du früher oder später bereuen ! Lass es sein !

das Chaos ist dann nicht mehr zu managen - weil Du nach kurzer Zeit nicht mehr weisst,
was in welchem Threadkontext läuft. Und Zugriff auf VCL-Klassen aus mehreren Threads wird
knallen !
Dasselbe gilt im übrigen für Deine published properties
( mal abgesehen davon, dass published bei Klassen die nicht
TPersistent abstammen oder {$M+} verwenden eh unsinnig ist).

Ein Zugriff die Properties deiner Klasse während der Thread läuft,
ist nur auf einer Ein-Prozessor-Maschine relativ gefahrlos möglich.
Auf einem Mehrprozessorsystem ( oder auch einer neuen Intel CPU mit aktiviertem
Hyperthreading !!) sind Intergeroperationen nicht atomar!
Verwende mindestens die InterLockedxxxx Funktionen des OS für die
Eigenschaftsimplementierung oder kapsele die Datenfelder des Threads.

Bernd
Bernd Ua
  Mit Zitat antworten Zitat