Partilhar via


CMultiLock::Lock

Chamar essa função para obter acesso a um ou mais dos recursos controlados por objetos de sincronização fornecidos para o construtor de CMultiLock .

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

Parâmetros

  • dwTimeOut
    Especifica a quantidade de tempo para esperar o objeto de sincronização para estar disponível (signaled.)Se INFINITE, Lock esperará até que o objeto é sinalizado antes de retornar.

  • bWaitForAll
    Especifica se todos os objetos esperaram sobre devem ficar signaled ao mesmo tempo antes de retornar.Se Falso, Lock retornará quando qualquer dos objetos esperados sobre é sinalizado.

  • dwWakeMask
    Especifica outras condições que são permitidas anular a espera.Para obter uma lista completa das opções disponíveis para esse parâmetro, consulte MsgWaitForMultipleObjects em Windows SDK.

Valor de retorno

Se Lock falhar, retorna. – 1.Se com êxito, retorna um dos seguintes valores:

  • Entre WAIT_OBJECT_0 e WAIT_OBJECT_0 + (número de objetos – 1)

    Se bWaitForAll é Verdadeiro, todos os objetos são sinalizados (disponível).Se bWaitForAll é Falso, o valor de retorno – WAIT_OBJECT_0 é o índice na matriz de objetos do objeto que é sinalizado (disponível).

  • WAIT_OBJECT_0 + (número de objetos)

    Um evento especificado em dwWakeMask está disponível na fila de entrada de segmento.

  • Entre WAIT_ABANDONED_0 e WAIT_ABANDONED_0 + (número de objetos – 1)

    Se bWaitForAll é Verdadeiro, todos os objetos são sinalizados, e pelo menos um dos objetos é um objeto mutex abandonadas.Se bWaitForAll é Falso, o valor de retorno – WAIT_ABANDONED_0 é o índice na matriz de objetos do objeto mutex abandonadas que tiver satisfeito a espera.

  • WAIT_TIMEOUT

    O intervalo de tempo limite especificado no dwTimeOut expirou sem a espera que é bem-sucedido.

Comentários

Se bWaitForAll é Verdadeiro, Lock retornará com êxito para que todos os objetos de sincronização se torna signaled simultaneamente.Se bWaitForAll é Falso, Lock retornará para que um ou mais dos objetos de sincronização se torna signaled.

Se Lock não pode retornar imediatamente, esperará não mais do que o número de milissegundos especificado no parâmetro de dwTimeOut antes de retornar.Se o dwTimeOut é INFINITE, Lock não retorna até que o acesso a um objeto está ganhado ou uma condição especificada em dwWakeMask é satisfeita.Caso contrário, se Lock consegui encontrar um objeto de sincronização, retornará com êxito; caso contrário, retornará a falha.

Requisitos

Cabeçalho: afxmt.h

Consulte também

Referência

Classe de CMultiLock

Gráfico de hierarquia