CMultiLock

CMultiLock verfügt nicht über eine Basisklasse.

Ein Objekt der Klasse CMultiLock stellt die Zugriffssteuerungsmechanismus im Steuern des Zugriffs auf Ressourcen in einem Multithreadprogramm verwendet. Die Synchronisation verwenden Klassen, CSemaphore, CMutexund CEvent, können Sie entweder ein CMultiLock oder CSingleLock Objekt, das warten auf und lassen Sie das Synchronisierungsobjekt. Wenn mehrere Objekte, die Sie zu einem bestimmten Zeitpunkt nutzen könnten, verwenden Sie CMultiLock . Verwenden Sie CSingleLock , wenn Sie nur für ein Objekt zu einem Zeitpunkt warten müssen.

Um ein CMultiLock -Objekt verwenden, zunächst ein Array von Synchronisierungsobjekten, die Sie warten möchten. Als Nächstes rufen Sie CMultiLock der Konstruktor des Objekts innerhalb einer Memberfunktion in die kontrollierte Ressource Klasse. Dann rufen Sie die Lock -Memberfunktion um festzustellen, ob eine Ressource verfügbar ist (signalisiert). Wenn man ist, weiter mit dem Rest der Memberfunktion. Wenn keine Ressource verfügbar ist, entweder warten Sie, bis eine bestimmte Zeitspanne für eine Ressource freigegeben werden, oder Rückgeben Sie Fehler . Nach Verwendung einer Ressource beendet ist, rufen Sie die Unlock -Funktion ist das CMultiLock Objekt wieder verwendet werden, oder ermöglichen Sie das CMultiLock Objekt zerstört werden,.

CMultiLock -Objekte sind besonders hilfreich, wenn ein Thread eine große Anzahl von CEvent Objekte hat, die es zu reagieren kann. Erstellt ein Array mit allen CEvent -Zeiger, und rufen Sie Lock. Dies bewirkt, dass den Thread wartet, bis eines der Ereignisse signalisiert wird.

Weitere Informationen über CMultiLock -Objekte veranschaulicht, finden Sie im Artikel Multithreading: Verwendung die Synchronisierungsklassen im Visual C++ Programmer's Guide.

# include lt;afxmt.h>

Klasse&nmember |nbsp; Hierarchiediagramm

Index