Lokale Thread-Variablen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Die Thread-Funktion schreiben

Die Thread-Funktion und alle von ihr aufgerufenen Routinen besitzen, ebenso wie alle anderen Delphi-Routinen, eigene lokale Variablen. Diese Routinen können außerdem auf globale Variablen zugreifen. Globale Variablen bieten einen leistungsfähigen Mechanismus zur Kommunikation zwischen den Threads.

In bestimmten Situationen müssen Variablen verwendet werden, die für alle Routinen in einem Thread global sind, aber nicht mit anderen Instanzen derselben Thread-Klasse gemeinsam genutzt werden sollen. Dies lässt sich über die Deklaration von Variablen erreichen, die innerhalb des Threads lokal sind. Dazu werden die Variablen in einem threadvar-Abschnitt deklariert. Beispiel:

threadvar
 x: integer;
int __thread x;

Hier wird eine Integer-Variable deklariert, die aus Sicht anderer Threads der Anwendung als privat gilt, jedoch innerhalb des Threads global sichtbar ist.

Der Abschnitt threadvar kann nur mit globalen Variablen verwendet werden. Bei Zeigern und Funktionen ist diese Art der Deklaration nicht möglich. Typen, bei denen ein Schreibzugriff einen Kopiervorgang impliziert, wie lange Strings, können nicht als Thread-Variablen deklariert werden.

Siehe auch