DeleteCriticalSection-Funktion (synchapi.h)
Gibt alle Ressourcen frei, die von einem nicht erfassten kritischen Abschnittsobjekt verwendet werden.
Syntax
void DeleteCriticalSection(
[in, out] LPCRITICAL_SECTION lpCriticalSection
);
Parameter
[in, out] lpCriticalSection
Ein Zeiger auf das Objekt des kritischen Abschnitts. Das Objekt muss zuvor mit der InitializeCriticalSection-Funktion initialisiert worden sein.
Rückgabewert
Keine
Bemerkungen
Durch das Löschen eines kritischen Abschnittsobjekts werden alle systemrelevanten Ressourcen freigegeben, die vom Objekt verwendet werden. Der Aufrufer ist dafür verantwortlich, sicherzustellen, dass das kritische Abschnittsobjekt nicht vorhanden ist und auf die angegebene CRITICAL_SECTION Struktur nicht von kritischen Abschnittsfunktionen zugegriffen wird, die von anderen Threads im Prozess aufgerufen werden.
Nachdem ein kritisches Abschnittsobjekt gelöscht wurde, verweisen Sie nicht auf das Objekt in einer Funktion, die für kritische Abschnitte (z. B . EnterCriticalSection, TryEnterCriticalSection und LeaveCriticalSection) mit Ausnahme von InitializeCriticalSection und InitializeCriticalSectionAndSpinCount ausgeführt wird. Wenn Sie dies versuchen, können Speicherbeschädigungen und andere unerwartete Fehler auftreten.
Wenn ein kritischer Abschnitt gelöscht wird, während er sich noch im Besitz befindet, ist der Status der Threads, die auf den Besitz des gelöschten kritischen Abschnitts warten, undefiniert.
Beispiele
Ein Beispiel, das DeleteCriticalSection 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 (einschließlich Windows.h unter Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |