Поделиться через


Функция DeleteSynchronizationBarrier (synchapi.h)

Удаляет барьер синхронизации.

Синтаксис

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

Параметры

[in, out] lpBarrier

Указатель на удаляемую синхронизацию барьера.

Возвращаемое значение

Функция DeleteSynchronizationBarrier всегда возвращает TRUE.

Комментарии

DeleteSynchronizationBarrier освобождает барьер синхронизации, когда он больше не нужен. Метод DeleteSynchronizationBarrier можно вызвать сразу после вызова Метода EnterSynchronizationBarrier , так как эта функция гарантирует, что все потоки в барьере завершали его использование, прежде чем разрешить освобождение барьера.

Если барьер синхронизации никогда не будет удален, потоки могут задать флаг SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE при входе в барьер. Этот флаг приводит к тому, что функция пропускает дополнительные действия, необходимые для обеспечения безопасности удаления, что может повысить производительность. Все потоки, использующие барьер, должны указывать этот флаг; Если ни один поток не выполняет этого, флаг игнорируется. Будьте осторожны при использовании SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE, так как удаление барьера, пока этот флаг действует, может привести к недопустимому доступу к дескрипторов и привести к постоянной блокировке одного или нескольких потоков.

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header synchapi.h
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

EnterSynchronizationBarrier

InitializeSynchronizationBarrier

Барьеры синхронизации

API-интерфейсы Vertdll, доступные в анклавах VBS