Home » Tutorials » Object Pascal/RTL » Threads

Threads

TCriticalSection, Abschluss

Auch für kritische Abschnitte gibt es eine Delphi-Vereinfachung: die VCL-Klasse TCriticalSection. Die Anwendung dieser Klasse erfolgt so:

  • Einbindung der Unit SyncObjs
  • Objektreferenz erstellen (also zunächst eine Variable kritischerAbschnitt: TCriticalSection; dann bei Programmstart die Instanz erzeugen kritischerAbschnitt:=TCriticalSection.Create und beim Beenden mit Destroy wieder freigeben.)
  • Nun kann der kritische Abschnitt im Thread-Code festgelegt werden:
 kritischerAbschnitt.Enter;
  // hier der geschützte Block
  kritischerAbschnitt.Leave;

Die Objektreferenz kritischerAbschnitt muss globale Gültigkeit haben, damit alle Threads darauf zugreifen können.
Da alle anderen Threads blockiert werden, während sich ein Thread im kritischen Abschnitt befindet, wird die Anwendung langsamer. Kritische Abschnitte sollten also nur verwendet werden, wenn es erforderlich ist.

Abschluss

Wie bereits in der Einführung erwähnt, ist dies natürlich nur ein grober Überblick, sozusagen eine Einstiegshilfe in die Arbeit mit Threads. Nach der Lektüre dieses Tutorials sind die Texte in der Online-Hilfe zu den Themen TThread, TCriticalSection, TEvent usw. möglicherweise etwas verständlicher. Für weitergehende Informationen soll nochmal auf die eingangs erwähnten Bücher verwiesen werden.