CreateThread()

Syntaxe

Thread = CreateThread(@NomdeProcedure(), *Valeur)
Description
Créé un nouveau thread tournant en arrière plan de l'application. 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... La procédure doit être créée selon le format suivant:
  Procedure VotreProcedure(*Valeur)
  EndProcedure
L'argument '*Valeur' de CreateThread() est passé comme argument de la procédure appelée. Il est très important de ne pas modifier le nombre de paramètre de cette procédure, qui doit toujours rester à 1.

Exemple

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

  CreateThread(@VotreProcedure(), 23)

Exemple: Passer plusieurs paramètres à un thread

  Structure Person
    Name$
    Age.b
    Phone.l
  EndStructure
  
  Procedure Thread(*Parameters.Person)
    
    ; Affiche les parametres
    ;
    Debug *Parameters\Name$
    Debug *Parameters\Age
    Debug *Parameters\Phone
    
    ; Une fois qu'on 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(*Parameters, Person)
    FreeMemory(*Parameters)
    
  EndProcedure
  
  ; On utilise de la mémoire dynamique, donc cela continuera de fonctionner meme si l'appel
  ; est fait à l'interieur d'une procédure.
  ;
  *Parameters.Person = AllocateMemory(SizeOf(Person))
  *Parameters\Name$ = "John"
  *Parameters\Age   = 30
  *Parameters\Phone = 10203040
  
  CreateThread(@Thread(), *Parameters) ; Crée le thread

  Delay(2000)

OS Supportés

Tous

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