Partager via


CSemaphore::CSemaphore

Construit un objet nommé ou sans nom d' CSemaphore .

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

Paramètres

  • lInitialCount
    Nombre initial d'utilisation pour le sémaphore. Doit être supérieure ou égale à 0, et inférieur ou égal à lMaxCount.

  • lMaxCount
    Le nombre maximal d'utilisation pour le sémaphore. Doit être supérieure à 0.

  • pstrName
    Le nom de sémaphore. Doit être fourni si le sémaphore est accessible au delà de les limites du processus. Si NULL, l'objet sera sans nom. Si le nom correspond à un sémaphore existante, le constructeur crée un nouvel objet d' CSemaphore qui référence le sémaphore de ce nom. Si le nom correspond à un objet de synchronisation existant qui n'est pas un sémaphore, la construction échoue.

  • lpsaAttributes
    Attributs de sécurité pour l'objet de sémaphore. Pour une description complète de cette structure, consultez SECURITY_ATTRIBUTES dans Kit de développement logiciel Windows.

Notes

Pour accéder ou libérer à un objet d' CSemaphore , créez un objet de CMultiLock ou de CSingleLock et appelez ses fonctions membres de Verrouillage et de déverrouillez .

Note de sécuritéNote de sécurité

Après avoir créé l'objet d' CSemaphore , utilisez GetLastError de s'assurer que le mutex n'ont pas encore existé.Si le mutex existaient de façon inattendue, ils peuvent indiquer débarrassent des plants peu vigoureux le processus s'accroupissent et peuvent s'attendre à utiliser les mutex de manière malveillante.Dans ce cas, la procédure consciente de sécurité est recommandé de fermer le handle et de continuer comme s'il y avait un échec en créant l'objet.

Configuration requise

Header: afxmt.h

Voir aussi

Référence

CSemaphore, classe

Graphique de la hiérarchie

CMutex, classe

CEvent, classe

CMultiLock, classe

CSingleLock, classe