DWORD Lock (DWORD dwTimeOut = infini, BOOL bWaitForAll = TRUE, DWORD dwWakeMask = 0);
Valeur de retour
Si le verrouillage échoue, il retur&nsnbsp ; – 1. Si elle réussit, elle retourne l'une des valeurs suivantes:
Si bWaitForAll est TRUE, tous les objets so&nt signalés (disponible). Si bWaitForAll est FALSE, le retour valuenbsp ; – WAIT_OBJECT_0 est l'index dans le tableau d'objets de l'objet qui est signalé (disponible).
Un événement spécifié dans dwWakeMask est disponible dans la file d'entrée du thread.
Si bWaitForAll est TRUE, tous les objets sont signalées, et au moins l'un des objets est un objet mutex abandonné. Si bWaitForAll est FALSE, le retour valuenbsp ; – WAIT_ABA&NDONED_0 est l'index dans le tableau d'objets de l'objet mutex abandonné qui a convaincu l'attente.
Expiration de l'intervalle de délai d'attente spécifié dans dwTimeOut sans l'attente réussir.
Paramètres
dwTimeOut
Spécifie la quantité de temps d'attente pour l'objet de synchronisation soit disponible (signalé). Si infini, Lock attendra jusqu'à ce que l'objet est signalé avant de retourner.
bWaitForAll
Spécifie si tous les objets attendus doivent devenir signalées en même temps avant de revenir. Si FALSE, verrou sera de retour lorsque l'un des objets attendu est signalé.
dwWakeMask
Spécifie d'autres conditions qui sont autorisées à abandonner l'attente. Pour une liste complète des options disponibles pour ce paramètre, voir MsgWaitForMultipleObjects dans la référence du programmeur Win32.
Remarques
Appelez cette fonction pour accéder à un ou plusieurs des ressources contrôlées par les objets de synchronisation fournis au constructeur CMultiLock . Si bWaitForAll est TRUE, Lock retour avec succès dès que tous les objets de synchronisation devient signalées simultanément. Si bWaitForAll a la valeur FALSE, Lock retournera dès qu'un ou plusieurs objets de synchronisation devient signalé.
Si le verrou n'est pas capable de retourner immédiatement, il attend pas plus que le nombre de millisecondes spécifié dans le paramètre dwTimeOut avant de retourner. Si dwTimeOut est infini, Lock ne reviendra pas jusqu'à ce que l'accès à un objet est acquise ou une condition spécifiée dans dwWakeMask a été remplie. Par ailleurs, si le verrou a été en mesure d'acquérir un objet de synchronisation, il retournera avec succès ; sinon, elle retournera un échec.
Aperçu CMultiLock |  ; Membres de la classe | Graphique de la hiérarchie