Freigeben über


CMutex::CMutex

Erstellt ein Objekt oder unbenanntes CMutex.

CMutex( 
   BOOL bInitiallyOwn = FALSE, 
   LPCTSTR lpszName = NULL, 
   LPSECURITY_ATTRIBUTES lpsaAttribute = NULL  
);

Parameter

  • bInitiallyOwn
    Gibt an, wenn der Thread, der das Objekt erstellt CMutex zuerst, Zugriff auf die Ressource verfügt, die vom Mutex gesteuert wird.

  • lpszName
    Der Name des CMutex-Objekts. Wenn ein anderer Mutex mit demselben Namen vorhanden ist, muss lpszName angegeben werden, wenn das Objekt über Prozessgrenzen verwendet wird. Wenn NULL, die Mutex unbenannt ist. Wenn der Name eines vorhandenen Mutex übereinstimmt, erstellt der Konstruktor ein neues CMutex-Objekt, das die Mutex dieses Namens verweist. Wenn der Name ein vorhandenes Synchronisierungsobjekt übereinstimmt, das nicht Mutex ist, schlägt die Konstruktion aus.

  • lpsaAttribute
    Sicherheitsattribute für das Mutex-Objekt. Eine vollständige Beschreibung dieser Struktur, finden Sie unter SECURITY_ATTRIBUTES in Windows SDK.

Hinweise

Um auf ein CMutex-Objekt zuzugreifen oder freizugeben, erstellen Sie ein CMultiLock oder CSingleLock-Objekt und Aufrufen ihrer Sperre und Entsperren Sie-Memberfunktionen auf. Wenn das Objekt CMutex verwendete eigenständiges ist, rufen Sie seine Unlock-Memberfunktion auf, um sie freizugeben.

SicherheitshinweisSicherheitshinweis

Nachdem das CMutex-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

CMutex-Klasse

Hierarchiediagramm