Utilisation de variables locales aux threads

De RAD Studio
Aller à : navigation, rechercher

Remonter à Ecriture de la fonction Thread


La fonction thread et toutes les routines qu'elle appelle ont leurs propres variables locales comme toute routine en langage Delphi. Ces routines peuvent également accéder à toutes les variables globales. En fait, les variables globales constituent un mécanisme puissant de communication entre les threads.

Mais dans certains cas, vous souhaitez utiliser des variables globales pour les routines du thread sans qu'elles ne soient partagées par les autres instances de la même classe de thread. Il est possible pour ce faire de déclarer des variables locales au thread. Déclarez une variable locale au thread en la déclarant dans une section threadvar. Par exemple,

threadvar
  x : integer;
int __thread x;

déclare une variable de type entier privée pour chaque thread de l'application, mais globale à l'intérieur de chaque thread.

La section threadvar ne peut être utilisée que pour des variables globales. Les variables pointeur et fonction ne peuvent pas être des variables de thread. Les types utilisant une sémantique de copie lors de l'écriture, comme les chaînes longues ne peuvent pas non plus faire office de variables de thread.


Voir aussi