UnlockMutex()
Syntaxe
UnlockMutex(Mutex)Description
Déverrouille un mutex préalablement verrouillé avec LockMutex().
Arguments
Mutex Le mutex à déverrouiller.
Valeur de retour
Aucune.
Remarques
Un mutex ne peut être déverrouillé que par le thread qui l'a bloqué.
Exemple
; Exécutez ce programme une fois comme il se présente.
; Vous verrez que les lignes imprimées seront
; mélangées entre les threads. Puis supprimez
; les commentaires devant les commandes de Mutex
; et les chaînes seront imprimées dans l'ordre,
; car un seul thread à la fois sera autorisé
; à exécuter les commandes d'impression.
;
Procedure SansMutex(*Numero)
Shared Mutex
For a = 1 To 5
;LockMutex(Mutex) ; supprimez le commentaire pour voir la différence
PrintN("Thread "+Str(*Numero)+" essaie d'imprimer 5 fois a la suite :")
For b = 1 To 5
Delay(50)
PrintN("Thread "+Str(*Numero)+" Ligne "+Str(b))
Next b
;UnlockMutex(Mutex) ; supprimez le commentaire pour voir la différence
Next a
EndProcedure
OpenConsole()
Mutex = CreateMutex()
thread1 = CreateThread(@SansMutex(), 1)
Delay(25)
thread2 = CreateThread(@SansMutex(), 2)
Delay(25)
thread3 = CreateThread(@SansMutex(), 3)
WaitThread(thread1)
WaitThread(thread2)
WaitThread(thread3)
Input()
Voir aussi
LockMutex(), TryLockMutex(), CreateMutex()
OS Supportés
Tous