TryLockMutex()
Syntaxe
Resultat = TryLockMutex(Mutex)Description
Essaie de verrouiller un Mutex.
Contrairement à LockMutex(), cette commande ne stoppe pas l'exécution du thread jusqu'à ce que le mutex soit libre. Ceci peut être pratique dans une situation ou le thread peut continuer à faire autre chose en attendant que le mutex soit libéré.
Arguments
Mutex Le mutex à verrouiller.
Valeur de retour
Renvoie une valeur non nulle si le mutex a été verrouillé, zéro sinon.
Remarques
Si le mutex a été verrouillé, la commande UnlockMutex() doit être appelée pour libérer le mutex une fois que les accès aux ressources partagées sont terminés. Ne pas le faire peut engendrer facilement des situations de blocage.
Exemple
Procedure ThreadProcedure(*Valeur) Shared Mutex Repeat If TryLockMutex(Mutex) PrintN("Mutex verrouille avec succes.") UnlockMutex(Mutex) Break ; quitte la boucle et le thread Else PrintN("Toujours en train d'attendre d'avoir accès au mutex...") Delay(200) EndIf ForEver EndProcedure OpenConsole() Mutex = CreateMutex() LockMutex(Mutex) ; le programme principal verrouille en premier le mutex Thread = CreateThread(@ThreadProcedure(), 0) Delay(4000) UnlockMutex(Mutex) ; maintenant déverrouille le mutex, pour que le thread puisse y accéder Input()
Voir aussi
UnlockMutex(), LockMutex(), CreateMutex()
OS Supportés
Tous