Condividi tramite


CSemaphore::CSemaphore

Costruisce un oggetto denominato o senza nome CSemaphore.

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

Parametri

  • lInitialCount
    Il numero iniziale di utilizzo per il semaforo.Deve essere maggiore o uguale a 0 e minore o uguale a lMaxCount.

  • lMaxCount
    Il conteggio massimo di utilizzo per il semaforo.Deve essere maggiore di 0.

  • pstrName
    Il nome del semaforo.Deve essere fornito se il semaforo avviene attraverso i limiti dei processi.Se NULL, l'oggetto verrà senza nome.Se il nome corrisponde a un semaforo esistente, il costruttore compila un nuovo oggetto CSemaphore che fa riferimento al semaforo con tale nome.Se il nome corrisponde a un oggetto di sincronizzazione esistente non incluso un semaforo, la costruzione non riuscirà.

  • lpsaAttributes
    Attributi di sicurezza per l'oggetto semaforo.Per una descrizione completa della struttura, vedere SECURITY_ATTRIBUTES in Windows SDK.

Note

Per accedere a o eliminare un oggetto CSemaphore, creare un oggetto CSingleLock o CMultiLock e chiamare i blocco funzioni membro e Sblocca.

Nota sulla sicurezzaNota sulla sicurezza

Dopo aver creato l'oggetto CSemaphore, utilizzare GetLastError assicurarsi che il mutex non sono già presenti.Se il mutex esistessero in modo imprevisto, possono indicare che tolga le erbacce dal processo sta occupando e può si intendeva utilizzare intenzionalmente il mutex.In questo caso, la routine sicurezza consapevole consigliata consiste nel chiudere l'handle e di continuare come se si trattasse di un errore nel creare l'oggetto.

Requisiti

Header: afxmt.h

Vedere anche

Riferimenti

Classe di CSemaphore

Grafico della gerarchia

Classe di CMutex

Classe di CEvent

Classe di CMultiLock

Classe di CSingleLock