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 de CSemaphore

Gráfico de hierarquia

Classe de CMutex

Classe de CEvent

Classe de CMultiLock

Classe de CSingleLock