Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: Thread Programmierung für Downloadmanager

  Alt 12. Jan 2005, 13:35
Die CriticalSection synchronisiert nicht mit dem Hauptthread sondern mit sich selbt. Eine VCL-Anweisung in einem Thread wird immer im Kontext des Threads ausgeführt und nicht im Hauptthread. Dazu gibt es TThread.Synchronize, das die übergebe Methode in eine Liste steckt und dann den Thread solange blockiert, bis der Hauptthread in der Botschaftsschleife die Synchronize-Liste abgearbeitet (aufgerufen) hat. Danach geht es im Thread weiter. Der VCL Code in der zu synchronisierenden Methode wird also nicht vom Thread aufgerufen, sondern vom Hauptprogramm und das in der Messageloop.
  Mit Zitat antworten Zitat