CriticalSection-Klasse
Stellt ein kritisches Abschnittsobjekt dar.
Syntax
class CriticalSection;
Member
Konstruktor
Name | Beschreibung |
---|---|
CriticalSection::CriticalSection | Initialisiert ein Synchronisierungsobjekt, das einem Mutex-Objekt ähnelt, kann jedoch nur von den Threads eines einzelnen Prozesses verwendet werden. |
CriticalSection::~CriticalSection | Deinitialisiert und zerstört das aktuelle CriticalSection Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CriticalSection::IsValid | Gibt an, ob der aktuelle kritische Abschnitt gültig ist. |
CriticalSection::Lock | Wartet auf den Besitz des angegebenen kritischen Abschnittsobjekts. Die Funktion gibt zurück, wenn dem aufrufenden Thread der Besitz gewährt wird. |
CriticalSection::TryLock | Versucht, einen kritischen Abschnitt ohne Blockierung einzugeben. Wenn der Aufruf erfolgreich ist, übernimmt der aufrufende Thread den Besitz des kritischen Abschnitts. |
Geschützte Datenmember
Name | Beschreibung |
---|---|
CriticalSection::cs_ | Deklariert ein kritisches Abschnittsdatenelement. |
Vererbungshierarchie
CriticalSection
Anforderungen
Kopfzeile: corewrappers.h
Namespace: Microsoft::WRL::Wrapper
CriticalSection::~CriticalSection
Deinitialisiert und zerstört das aktuelle CriticalSection
Objekt.
WRL_NOTHROW ~CriticalSection();
CriticalSection::CriticalSection
Initialisiert ein Synchronisierungsobjekt, das einem Mutex-Objekt ähnelt, kann jedoch nur von den Threads eines einzelnen Prozesses verwendet werden.
explicit CriticalSection(
ULONG spincount = 0
);
Parameter
Spincount
Die Drehzahl für das kritische Abschnittsobjekt. Der Standardwert ist 0.
Hinweise
Weitere Informationen zu kritischen Abschnitten und Spincounts finden Sie in der InitializeCriticalSectionAndSpinCount
Funktion im Synchronization
Abschnitt der Windows-API-Dokumentation.
CriticalSection::cs_
Deklariert ein kritisches Abschnittsdatenelement.
CRITICAL_SECTION cs_;
Hinweise
Dieses Datenelement ist geschützt.
CriticalSection::IsValid
Gibt an, ob der aktuelle kritische Abschnitt gültig ist.
bool IsValid() const;
Rückgabewert
Gibt standardmäßig immer zurück true
.
CriticalSection::Lock
Wartet auf den Besitz des angegebenen kritischen Abschnittsobjekts. Die Funktion gibt zurück, wenn dem aufrufenden Thread der Besitz gewährt wird.
SyncLock Lock();
static SyncLock Lock(
_In_ CRITICAL_SECTION* cs
);
Parameter
Cs
Ein vom Benutzer angegebenes kritisches Abschnittsobjekt.
Rückgabewert
Ein Sperrobjekt, das zum Entsperren des aktuellen kritischen Abschnitts verwendet werden kann.
Hinweise
Die erste Lock
Funktion wirkt sich auf das aktuelle kritische Abschnittsobjekt aus. Die zweite Lock
Funktion wirkt sich auf einen vom Benutzer angegebenen kritischen Abschnitt aus.
CriticalSection::TryLock
Versucht, einen kritischen Abschnitt ohne Blockierung einzugeben. Wenn der Aufruf erfolgreich ist, übernimmt der aufrufende Thread den Besitz des kritischen Abschnitts.
SyncLock TryLock();
static SyncLock TryLock(
_In_ CRITICAL_SECTION* cs
);
Parameter
Cs
Ein vom Benutzer angegebenes kritisches Abschnittsobjekt.
Rückgabewert
Ein Wert ungleich Null, wenn der kritische Abschnitt erfolgreich eingegeben wird oder der aktuelle Thread bereits den kritischen Abschnitt besitzt. Null, wenn ein anderer Thread bereits den kritischen Abschnitt besitzt.
Hinweise
Die erste TryLock
Funktion wirkt sich auf das aktuelle kritische Abschnittsobjekt aus. Die zweite TryLock
Funktion wirkt sich auf einen vom Benutzer angegebenen kritischen Abschnitt aus.