CMultiLock::Lock
Appelez cette fonction pour accéder à un ou plusieurs des ressources contrôlées par les objets de synchronisation fournies au constructeur de CMultiLock .
DWORD Lock(
DWORD dwTimeOut = INFINITE,
BOOL bWaitForAll = TRUE,
DWORD dwWakeMask = 0
);
Paramètres
dwTimeOut
Spécifie la durée d'attente de l'objet de synchronisation pour être disponible (signalé). Si infini, Lock attend que l'objet soit signalé avant de retourner.bWaitForAll
Spécifie si tous les objets ont attendu sur devenir doivent signalé en même temps avant de retourner. Si FALSE, Lock retourne lorsque les n'importe lequel des objets attendus sur signalé sont.dwWakeMask
Spécifie d'autres conditions qui sont autorisées pour interrompre l'attente. Pour une liste complète des options disponibles pour ce paramètre, consultez MsgWaitForMultipleObjects dans Kit de développement logiciel Windows.
Valeur de retour
Si Lock échoue, il retourne – 1. En cas de réussite, il retourne une des valeurs suivantes :
Entre WAIT_OBJECT_0 et WAIT_OBJECT_0 + (nombre d'objets – 1)
Si bWaitForAll est TRUE, tous les objets sont disponibles signalé (). Si bWaitForAll est FALSE, la valeur de retour – WAIT_OBJECT_0 est l'index dans le tableau d'objets de l'objet qui est signalé (disponible).
WAIT_OBJECT_0 + (nombre d'objets)
Un événement spécifié dans dwWakeMask est disponible dans la file d'attente d'entrée du thread.
Entre WAIT_ABANDONED_0 et WAIT_ABANDONED_0 + (nombre d'objets – 1)
Si bWaitForAll est TRUE, tous les objets signalé sont, et au moins l'un des objets est un objet de mutex abandonné. Si bWaitForAll est FALSE, la valeur de retour – WAIT_ABANDONED_0 est l'index dans le tableau d'objets de l'objet mutex abandonné de qui a satisfait l'attente.
WAIT_TIMEOUT
l'intervalle de délai d'attente spécifié dans le dwTimeOut a expiré sans réussir d'attente.
Notes
Si bWaitForAll est TRUE, Lock retourne avec succès dès que tous les objets de synchronisation signalé deviendront simultanément. Si bWaitForAll est FALSE, Lock retourne dès qu'un ou plusieurs objets de synchronisation deviendra signalé.
Si Lock ne peut pas retourner immédiatement, il attend pas plus que le nombre de millisecondes spécifié dans le paramètre de dwTimeOut avant de retourner. Si le dwTimeOut est infini, Lock ne retourne pas jusqu'à ce que l'accès à un objet a gagné ou une condition spécifiée dans dwWakeMask a été remplie. Sinon, si Lock a pu acquérir un objet de synchronisation, elle retourne avec succès ; sinon, elle retourne l'échec.
Configuration requise
Header: afxmt.h