LeaveCriticalSection-Funktion (synchapi.h)
Gibt den Besitz des angegebenen kritischen Abschnittsobjekts frei.
Syntax
void LeaveCriticalSection(
[in, out] LPCRITICAL_SECTION lpCriticalSection
);
Parameter
[in, out] lpCriticalSection
Ein Zeiger auf das Kritische Abschnittsobjekt.
Rückgabewert
Keine
Bemerkungen
Die Threads eines einzelnen Prozesses können ein kritisches Abschnittsobjekt für die Synchronisierung mit gegenseitigem Ausschluss verwenden. Der Prozess ist für die Zuweisung des von einem kritischen Abschnittsobjekt verwendeten Arbeitsspeichers verantwortlich. Dies kann durch Deklarieren einer Variablen vom Typ CRITICAL_SECTION. Vor der Verwendung eines kritischen Abschnitts muss ein Thread des Prozesses die Funktion InitializeCriticalSection oder InitializeCriticalSectionAndSpinCount aufrufen, um das Objekt zu initialisieren.
Ein Thread verwendet die Funktion EnterCriticalSection oder TryEnterCriticalSection , um den Besitz eines kritischen Abschnittsobjekts zu erwerben. Um seinen Besitz freizugeben, muss der Thread LeaveCriticalSection einmal aufrufen, wenn er in den kritischen Abschnitt gelangt ist.
Wenn ein Thread LeaveCriticalSection aufruft , wenn er nicht über den Besitz des angegebenen kritischen Abschnittsobjekts verfügt, tritt ein Fehler auf, der dazu führen kann, dass ein anderer Thread mit EnterCriticalSection unbegrenzt wartet.
LeaveCriticalSection greift nicht auf die angegebene CRITICAL_SECTION-Struktur zu, nachdem der Besitz eines kritischen Abschnittsobjekts freigegeben wurde.
Jeder Thread des Prozesses kann die DeleteCriticalSection-Funktion verwenden, um die Systemressourcen freizugeben, die bei der Initialisierung des kritischen Abschnittsobjekts zugeordnet wurden. Nachdem diese Funktion aufgerufen wurde, kann das kritische Abschnittsobjekt nicht mehr für die Synchronisierung verwendet werden.
Beispiele
Ein Beispiel, das LeaveCriticalSection verwendet, finden Sie unter Verwenden kritischer Abschnittsobjekte.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | synchapi.h (enthalten Windows.h unter Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |