Compartilhar via


CSemaphore::CSemaphore

Constrói um objeto chamado ou sem nome de CSemaphore .

CSemaphore( 
   LONG lInitialCount = 1, 
   LONG lMaxCount = 1, 
   LPCTSTR pstrName = NULL, 
   LPSECURITY_ATTRIBUTES lpsaAttributes = NULL  
);

Parâmetros

  • lInitialCount
    A contagem inicial de uso para o semáforo. Deve ser maior ou igual a 0, e menor ou igual a lMaxCount.

  • lMaxCount
    O número máximo de uso para o semáforo. Deve ser maior que 0.

  • pstrName
    O nome de semáforo. Deve ser fornecido se o semáforo será acessado através dos limites de processo. Se NULL, o objeto será sem nome. Se o nome corresponde a um semáforo existente, o construtor cria um novo objeto de CSemaphore que referencia o semáforo de aquele nome. Se o nome corresponde a um objeto existente de sincronização que não é um semáforo, a compilação falhará.

  • lpsaAttributes
    Atributos de segurança para o objeto de semáforo. Para obter uma descrição completa de essa estrutura, consulte SECURITY_ATTRIBUTES em Windows SDK.

Comentários

Para acessar ou liberar um objeto de CSemaphore , crie um objeto de CMultiLock ou de CSingleLock e chamar as funções de membro de Bloquear e de desbloquear .

Observação de segurançaObservação de segurança

Após criar o objeto de CSemaphore , use GetLastError garantir que o mutex já não existe.Se o mutex existiu inesperadamente, pode indicar que um processo desonesto squatting e pretender pode usar maliciosa o mutex.Em esse caso, o procedimento de segurança consciente recomendado é feche o identificador e continuar como se houver uma falha na criação do objeto.

Requisitos

Cabeçalho: afxmt.h

Consulte também

Referência

Classe CSemaphore

Gráfico da hierarquia

Classe CMutex

Classe CEvent

Classe CMultiLock

Classe CSingleLock