Threaded
DescriptionThreaded[.<type>] <variable[.<type>]> [= <expression constante>] [, ...]
Threaded permet de créer une variable, un tableau sauf les tableaux multi-dimensionnels), une liste ou une map qui sera persistant pour chaque thread. C'est à dire que chaque thread aura sa propre version de l'objet. C'est uniquement utile lors de l'écriture de programmes multi-threadés.
Si un type est spécifié après le mot-clef Threaded, le type par défaut pour cette déclaration est modifié.
Chaque variable peut avoir une valeur par défaut assignée, mais cette valeur doit être une constante. Les variables threadées sont initialisées au lancement du premier thread. Cela implique que si la variable est définie est assignée à une valeur en même temps alors elle est définie pour tous les threads. Voir exemple 2. Lors de la déclaration d'un tableau threadé, les paramètres de dimensionnement doivent être des valeurs constantes.
Un objet threadé ne peut pas être déclaré dans une procédure, et sa portée est toujours globale.
Exemple: 1 Avec une variable
Threaded Compteur Compteur = 128 Procedure Thread(Parametre) Debug Compteur ; Affichera zero, car ce thread n'a pas encore utilisé cette variable Compteur = 256 Debug Compteur ; Affichera 256 EndProcedure Thread = CreateThread(@Thread(), 0) WaitThread(Thread) ; Attente de la fin d'exécution du thread. Debug Compteur ; Affichera 128, meme si 'Compteur' a ete change dans le thread
Exemple: 2 Tous les threads
Threaded Compteur = 128 Procedure Thread(Parametre) Debug Compteur ; Affichera 128, car quand on lance un programme, on lance aussi un thread Compteur = 256 Debug Compteur ; Affichera 256 EndProcedure Thread = CreateThread(@Thread(), 0) WaitThread(Thread) ; Attente de la fin d'exécution du thread. Debug Compteur ; Affichera 128, meme si 'Compteur' a ete change dans le thread