Compartir a través de


CSemaphore::CSemaphore

Construye un objeto denominado o sin nombre de CSemaphore .

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

Parámetros

  • lInitialCount
    El número inicial del semáforo. Debe ser mayor o igual que 0, y menor que o igual que a lMaxCount.

  • lMaxCount
    El número máximo de uso para el semáforo. Debe ser mayor que 0.

  • pstrName
    El nombre del semáforo. Debe proporcionarse si el semáforo se logra a través de límites de procesos. Si NULL, el objeto es sin nombre. Si el nombre un semáforo existente, el constructor compila un nuevo objeto de CSemaphore que haga referencia el semáforo con ese nombre. Si el nombre de un objeto de sincronización existente que no es un semáforo, la construcción no.

  • lpsaAttributes
    Atributos de seguridad del objeto semaphore. Para obtener una descripción completa de esta estructura, vea SECURITY_ATTRIBUTES en Windows SDK.

Comentarios

Para obtener acceso o liberar un objeto de CSemaphore , crear un objeto de CMultiLock o de CSingleLock y llamar al bloqueo y miembro de Unlock funciona.

Nota de seguridadNota sobre la seguridad

Después de crear el objeto de CSemaphore , utilice GetLastError de asegurarse que no existían mutex ya.Si existían mutex inesperado, pueden indicar que elimine las plantas débiles el proceso se coloca en cuclillas y puede utilizar diseñado mutex malintencionados.En este caso, el procedimiento seguridad-consciente recomendado es cerrar el identificador y continuar como si hay un error en la creación del objeto.

Requisitos

encabezado: afxmt.h

Vea también

Referencia

CSemaphore Class

Gráfico de jerarquías

CMutex Class

CEvent (Clase)

CMultiLock Class

CSingleLock Class