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