Freigeben über


CMultiLock-Klasse

Stellt den Mechanismus zur Zugriffssteuerung dar, mit dessen Hilfe der Zugriff auf Ressourcen in einem Multithreadprogramm gesteuert wird.

class CMultiLock

Mitglieder

Öffentliche Konstruktoren

Name

Description

CMultiLock::CMultiLock

Erstellt ein CMultiLock-Objekt.

Öffentliche Methoden

Name

Description

CMultiLock::IsLocked

Bestimmt, ob ein bestimmtes Synchronisierungsobjekt im Array gesperrt ist.

CMultiLock::Lock

wartet auf dem Array von Synchronisierungsobjekten.

CMultiLock::Unlock

Gibt alle zugehörigen Synchronisierungsobjekte frei.

Hinweise

CMultiLock hat keine Basisklasse.

Um die Synchronisierungsklassen CSemaphore zu verwenden, CMutex und CEvent, können Sie entweder ein CMultiLock oder CSingleLock-Objekt von Wait an erstellen und das Synchronisierungsobjekt freigeben. Verwenden Sie CMultiLock , wenn mehrere Objekte gibt, die Sie zu einem bestimmten Zeitpunkt verwenden können. Verwenden Sie CSingleLock, wenn Sie nur auf ein Objekt gleichzeitig warten müssen.

Um ein CMultiLock -Objekt zu verwenden, erstellen Sie zuerst ein Array der Synchronisierungsobjekte warten möchten Sie die auf. Rufen Sie anschließend den Konstruktor des CMultiLock -Objekts innerhalb einer Memberfunktion in der gesteuerten Klasse der Ressource auf. Rufen Sie dann die Sperre-Memberfunktion auf, um zu bestimmen, ob eine Ressource verfügbar ist (signalisiert). Wenn Sie, fahren Sie mit dem Rest der Memberfunktion fort. Wenn keine Ressource, entweder verfügbar ist, warten Sie auf eine bestimmte Zeit, damit eine Ressource freigegeben werden kann, oder geben Sie Fehler zurück. Nachgebrauch einer Ressource ist, jeder Aufruf die Entsperren Sie-Funktion, wenn das CMultiLock -Objekt erneut verwendet werden soll, oder ermöglicht das zerstört werden CMultiLock vollständig Objekt.

CMultiLock -Objekte sind besonders hilfreich, wenn ein Thread große CEvent-Objekte verfügt, die er auf reagieren kann. Erstellen Sie ein Array, das alle CEvent Zeiger enthält, und rufen Sie Lock auf. Dadurch wird der Thread zu warten, bis eines der Ereignisse signalisiert wird.

Weitere Informationen dazu, wie CMultiLock -Objekte, finden Sie im Artikel Multithreading: Erstellen der Synchronisierungsklassen verwendet.

Vererbungshierarchie

CMultiLock

Anforderungen

Header: afxmt.h

Siehe auch

Referenz

Hierarchiediagramm