WaitForSingleObject, fonction (synchapi.h)
Attend que l’objet spécifié soit dans l’état signalé ou que l’intervalle de délai d’attente s’écoule.
Pour entrer un état d’attente alertable, utilisez la fonction WaitForSingleObjectEx. Pour attendre plusieurs objets, utilisez WaitForMultipleObjects.
Syntaxe
DWORD WaitForSingleObject(
[in] HANDLE hHandle,
[in] DWORD dwMilliseconds
);
Paramètres
[in] hHandle
Handle vers l’objet. Pour obtenir la liste des types d’objets dont les handles peuvent être spécifiés, consultez la section Remarques suivante.
Si ce handle est fermé pendant que l’attente est toujours en attente, le comportement de la fonction n’est pas défini.
Le handle doit disposer du droit d’accès SYNCHRONIZE. Pour plus d’informations, consultez Standard Access Rights.
[in] dwMilliseconds
Intervalle de délai d’attente, en millisecondes. Si une valeur différente de zéro est spécifiée, la fonction attend que l’objet soit signalé ou que l’intervalle s’écoule. Si dwMilliseconds est égal à zéro, la fonction n’entre pas dans un état d’attente si l’objet n’est pas signalé ; elle retourne toujours immédiatement. Si dwMilliseconds est INFINITE, la fonction ne retourne que lorsque l’objet est signalé.
Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 et Windows Server 2008 R2 : La valeur dwMilliseconds inclut le temps passé dans les états à faible alimentation. Par exemple, le délai d’attente ne cesse de compter pendant que l’ordinateur est endormi.
Windows 8 et versions ultérieures, Windows Server 2012 et versions ultérieures : La valeur dwMilliseconds n’inclut pas le temps passé dans les états à faible alimentation. Par exemple, le délai d’expiration ne continue pas à compter pendant que l’ordinateur est endormi.
Valeur de retour
Si la fonction réussit, la valeur de retour indique l’événement qui a provoqué le retour de la fonction. Il peut s’agir de l’une des valeurs suivantes.
Retourner le code/la valeur | Description |
---|---|
|
L’objet spécifié est un objet mutex qui n’a pas été libéré par le thread qui possédait l’objet mutex avant l’arrêt du thread propriétaire. La propriété de l’objet mutex est accordée au thread appelant et l’état mutex est défini sur non signé.
Si le mutex protège les informations d’état persistant, vous devez vérifier la cohérence. |
|
L’état de l’objet spécifié est signalé. |
|
Intervalle de délai d’attente écoulé, et l’état de l’objet n’est pas signé. |
|
La fonction a échoué. Pour obtenir des informations d’erreur étendues, appelez GetLastError. |
Remarques
La fonction WaitForSingleObject vérifie l’état actuel de l’objet spécifié. Si l’état de l’objet n’est pas signé, le thread appelant entre dans l’état d’attente jusqu’à ce que l’objet soit signalé ou que l’intervalle de délai d’attente s’écoule.
La fonction modifie l’état de certains types d’objets de synchronisation. La modification se produit uniquement pour l’objet dont l’état signalé a provoqué le retour de la fonction. Par exemple, le nombre d’un objet sémaphore est diminué d’un.
La fonction WaitForSingleObject peut attendre les objets suivants :
- Notification de modification
- Entrée de console
- Événement
- Notification de ressource mémoire
- Mutex
- Processus
- Sémaphore
- Fil
- Minuteur pouvant être attendu
Exemples
Pour obtenir un exemple, consultez Using Mutex Objects.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows XP [applications de bureau | Applications UWP] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau | Applications UWP] |
plateforme cible | Windows |
d’en-tête | synchapi.h (inclure Windows.h sur Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |