CreateThread()

Syntaxe

Resultat = CreateThread(@NomdeProcedure(), *Valeur)
Description
Crée un nouveau Thread.

Arguments

@NomdeProcedure() L'adresse de la procédure que vous souhaitez utiliser comme code du nouveau thread.
N'oubliez pas de mettre le '@' devant pour obtenir le nom, et les '()'.
*Valeur La valeur transmise à la procédure de thread en tant que paramètre. C'est à vous de décider de son utilisation.

Valeur de retour

Renvoie le numéro du Thread s'il a été créé avec succès, zéro sinon.

Remarques

Si le thread est créé correctement, la fonction renvoie le numéro du thread qui pourra être utilisé avec les autres commandes de la bibliothèque, telles que KillThread(), PauseThread(), etc.

Exemple

  Procedure MaProcedureThread(*Valeur)
    ; La variable '*Valeur' contiendra 23
  EndProcedure

  CreateThread(@MaProcedureThread(), 23)

Exemple: Passer plusieurs paramètres à un thread

  Structure Personne
    Nom$
    Age.b
    Telephone.l
  EndStructure
  
  Procedure Thread(*Parametres.Personne)
    
    ; Affiche les parametres
    ;
    Debug *Parametres\Nom$
    Debug *Parametres\Age
    Debug *Parametres\Telephone
    
    ; Une fois qu'on n'en a plus besoin, ClearStructure() est nécessaire pour s'assurer
    ; que les objets dynamiques (s'il y en a) sont correctement libérés.
    ClearStructure(*Parametres, Personne)
    FreeMemory(*Parametres)
    
  EndProcedure
  
  ; On utilise de la mémoire dynamique, donc cela continuera de fonctionner même si l'appel
  ; est fait à l'interieur d'une procédure.
  ;
  *Parametres.Personne = AllocateMemory(SizeOf(Personne))
  *Parametres\Nom$ = "Jean"
  *Parametres\Age   = 30
  *Parametres\Telephone = 10203040
  
  CreateThread(@Thread(), *Parametres) ; Crée le thread

  Delay(2000)

Voir aussi

KillThread()

OS Supportés

Tous

<- CreateSemaphore() - Thread Index - FreeMutex() ->