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

Siehe auch

Kritische Abschnittsobjekte

DeleteCriticalSection

EnterCriticalSection

InitializeCriticalSection

InitializeCriticalSectionAndSpinCount

Synchronisierungsfunktionen

TryEnterCriticalSection

In VBS-Enclaves verfügbare Vertdll-APIs