Freigeben über


CSemaphore::CSemaphore

Erstellt ein Objekt oder unbenanntes CSemaphore.

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

Parameter

  • lInitialCount
    Die ursprüngliche Verwendungsanzahl für das Semaphor. Muss größer oder gleich 0 und kleiner oder gleich lMaxCount sein.

  • lMaxCount
    Die maximale Verwendungsanzahl für das Semaphor. Muss größer als 0 sein.

  • pstrName
    Der Name des Semaphors. Muss angegeben werden, wenn auf das Semaphor über Prozessgrenzen zugegriffen wird. Wenn das Objekt NULL, unbenannt ist. Wenn der Name ein vorhandenes Semaphore übereinstimmt, erstellt der Konstruktor ein neues CSemaphore-Objekt, das das Semaphor dieses Namens verweist. Wenn der Name ein vorhandenes Synchronisierungsobjekt übereinstimmt, das kein Semaphor ist, schlägt die Konstruktion aus.

  • lpsaAttributes
    Sicherheitsattribute für das Semaphorobjekt. Eine vollständige Beschreibung dieser Struktur, finden Sie unter SECURITY_ATTRIBUTES in Windows SDK.

Hinweise

Um auf ein CSemaphore-Objekt zuzugreifen oder freizugeben, erstellen Sie ein CMultiLock oder CSingleLock-Objekt und Aufrufen ihrer Sperre und Entsperren Sie-Memberfunktionen auf.

SicherheitshinweisSicherheitshinweis

Nachdem das CSemaphore-Objekt erstellt wurde, verwendet GetLastError, sicherzustellen, dass die Mutex nicht bereits vorhanden waren.Wenn die Mutex unerwartet vorhanden waren, vorgesehen sein er möglicherweise angibt kranke Pflanzen entfernt Prozess hockt und, die Mutex böswillig zu verwenden.In diesem Fall ist die empfohlene Sicherheit-bewusste Prozedur, das Handle zu schließen und fortzufahren, als ob es ein Fehler auftritt, während das Objekt erstellt wurde.

Anforderungen

Header: afxmt.h

Siehe auch

Referenz

CSemaphore-Klasse

Hierarchiediagramm

CMutex-Klasse

CEvent-Klasse

CMultiLock-Klasse

CSingleLock-Klasse