Freigeben über


DeleteSynchronizationBarrier-Funktion (synchapi.h)

Löscht eine Synchronisierungsbarriere.

Syntax

BOOL DeleteSynchronizationBarrier(
  [in, out] LPSYNCHRONIZATION_BARRIER lpBarrier
);

Parameter

[in, out] lpBarrier

Ein Zeiger auf die zu löschende Synchronisierungsbarriere.

Rückgabewert

Die DeleteSynchronizationBarrier-Funktion gibt immer zurück TRUE.

Hinweise

DeleteSynchronizationBarrier gibt eine Synchronisierungsbarriere frei, wenn sie nicht mehr benötigt wird. Es ist sicher, DeleteSynchronizationBarrier sofort nach dem Aufruf von EnterSynchronizationBarrier aufzurufen, da diese Funktion sicherstellt, dass alle Threads in der Barriere die Verwendung abgeschlossen haben, bevor die Barriere freigegeben werden kann.

Wenn eine Synchronisierungsbarriere nie gelöscht wird, können Threads das flag SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE angeben, wenn sie die Barriere betreten. Dieses Flag bewirkt, dass die Funktion den zusätzlichen Aufwand überspringt, der für die Löschsicherheit erforderlich ist, was die Leistung verbessern kann. Alle Threads, die die Barriere verwenden, müssen dieses Flag angeben. Wenn dies bei einem Thread nicht der Fall ist, wird das Flag ignoriert. Seien Sie bei der Verwendung von SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE vorsichtig, da das Löschen einer Barriere während der Gültigkeit dieses Flags zu einem ungültigen Handle-Zugriff führen kann und dazu führen kann, dass ein oder mehrere Threads dauerhaft blockiert werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile synchapi.h
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

EnterSynchronizationBarrier

InitializeSynchronizationBarrier

Synchronisierungsbarrieren

In VBS-Enclaves verfügbare Vertdll-APIs