Compartir a través de


CMultiLock::Lock

Llame a esta función para obtener acceso a uno o varios recursos controlados por los objetos de sincronización proporcionados al constructor de CMultiLock .

DWORD Lock( 
   DWORD dwTimeOut = INFINITE, 
   BOOL bWaitForAll = TRUE, 
   DWORD dwWakeMask = 0  
);

Parámetros

  • dwTimeOut
    Especifica la cantidad de tiempo de espera el objeto de sincronización esté disponible (designado). Si Infinito, Lock espera hasta que el objeto se designa antes de volver.

  • bWaitForAll
    Especifica si todos los objetos se esperaba en deben señaliza al mismo tiempo antes de volver. Si FALSO, Lock devuelve cuando de objetos esperados en se señala.

  • dwWakeMask
    Especifica otras condiciones que se permiten anular la espera. Para obtener una lista completa de las opciones disponibles para este parámetro, vea MsgWaitForMultipleObjects en Windows SDK.

Valor devuelto

Si se produce Lock , devuelve – 1. Si finaliza correctamente, devuelve uno de los siguientes valores:

  • entre WAIT_OBJECT_0 y WAIT_OBJECT_0 + (número de objetos – 1)

    Si bWaitForAll es TRUE, se designan todos los objetos (disponible). Si bWaitForAll es FALSO, el valor devuelto – WAIT_OBJECT_0 es el índice de la matriz de objetos object se señala que (disponible).

  • WAIT_OBJECT_0 + (número de objetos)

    Un evento especificado en dwWakeMask está disponible en la cola de entrada del subproceso.

  • entre WAIT_ABANDONED_0 y WAIT_ABANDONED_0 + (número de objetos – 1)

    Si bWaitForAll es TRUE, se designan todos los objetos, y al menos uno de los objetos es un objeto abandonado mutex. Si bWaitForAll es FALSO, el valor devuelto – WAIT_ABANDONED_0 es el índice de la matriz de objetos object abandonado mutex que satisfizo la espera.

  • WAIT_TIMEOUT

    El intervalo de tiempo de espera especificado en el dwTimeOut expirados sin espera que funciona correctamente.

Comentarios

Si bWaitForAll es TRUE, Lock se devolverá correctamente en cuanto todos los objetos de sincronización se designan simultáneamente. Si bWaitForAll es FALSO, Lock volverá tan pronto como uno o más objetos de sincronización se designan.

Si Lock no puede volver inmediatamente, esperará no más del número de milisegundos especificada en el parámetro de dwTimeOut antes de volver. Si el dwTimeOut es Infinito, Lock no volverá hasta que el acceso a un objeto se tenga o una condición especificada en dwWakeMask se cumple. Si no, si Lock pudo adquirir un objeto de sincronización, se devolverá correctamente; de lo contrario, devolverá el error.

Requisitos

encabezado: afxmt.h

Vea también

Referencia

CMultiLock Class

Gráfico de jerarquías