Augmente le compteur de l'objet Semaphore spécifié d'une valeur donnée
#include <WinAPIProc.au3>
_WinAPI_ReleaseSemaphore ( $hSemaphore [, $iIncrease = 1] )
$hSemaphore | Handle de l'objet Semaphore. La fonction _WinAPI_CreateSemaphore() or _WinAPI_OpenSemaphore() retourne ce handle. |
$iIncrease | [optionnel] La valeur par laquelle le compteur actuel de l'objet Semaphore doit être augmentée. La valeur doit être supérieure à zéro. Si la valeur indiquée provoquerait le dépassement du nombre maximum spécifié lors de la création du sémaphore, le compteur ne serait pas modifié et la fonction retournerait 0. La valeur de ce paramètre par défaut est 1. |
Succès: | Retourne la valeur précédente du compteur du sémaphore. |
Échec: | Définit @error <> 0, appelez _WinAPI_GetLastError() pour obtenir des informations supplémentaires sur l'erreur. |
L'état d'un objet sémaphore est signalé lorsque son compteur est supérieur à zéro et non signalé quand son compteur est égal à zéro. Le processus qui appelle la fonction _WinAPI_CreateSemaphore() spécifie la valeur initiale du compteur du sémaphore. Chaque fois qu'un processus d'attente est libéré en raison de l'état signalé du sémaphore, le compteur du sémaphore est diminuée de un.
_WinAPI_CreateSemaphore, _WinAPI_OpenSemaphore
Consultez ReleaseSemaphore dans la librairie MSDN.
#include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <WinAPIHObj.au3> #include <WinAPIProc.au3> If Not @Compiled Then MsgBox($MB_SYSTEMMODAL, '', 'Pour exéuter ce script, vous devez premièrement le compiler, puis ensuite exécuter le fichier (.exe).') Exit EndIf Local $hSemaphore = _WinAPI_CreateSemaphore('MySemaphore', 2, 2) _WinAPI_WaitForSingleObject($hSemaphore) _MyGUI() _WinAPI_ReleaseSemaphore($hSemaphore) _WinAPI_CloseHandle($hSemaphore) Func _MyGUI() GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()')) GUISetState(@SW_SHOW) Do Until GUIGetMsg() = $GUI_EVENT_CLOSE EndFunc ;==>_MyGUI