Compartilhar via


Função DeleteSynchronizationBarrier (synchapi.h)

Exclui uma barreira de sincronização.

Sintaxe

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

Parâmetros

[in, out] lpBarrier

Um ponteiro para a barreira de sincronização a ser excluída.

Retornar valor

A função DeleteSynchronizationBarrier sempre retorna TRUE.

Comentários

DeleteSynchronizationBarrier libera uma barreira de sincronização quando ela não é mais necessária. É seguro chamar DeleteSynchronizationBarrier imediatamente após chamar EnterSynchronizationBarrier porque essa função garante que todos os threads na barreira tenham terminado de usá-lo antes de permitir que a barreira seja lançada.

Se uma barreira de sincronização nunca for excluída, os threads poderão especificar o sinalizador SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE quando entrarem na barreira. Esse sinalizador faz com que a função ignore o trabalho extra necessário para a segurança de exclusão, o que pode melhorar o desempenho. Todos os threads que usam a barreira devem especificar esse sinalizador; se qualquer thread não o fizer, o sinalizador será ignorado. Tenha cuidado ao usar SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE, pois excluir uma barreira enquanto esse sinalizador estiver em vigor pode resultar em um acesso de identificador inválido e fazer com que um ou mais threads fiquem permanentemente bloqueados.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho synchapi.h
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

EnterSynchronizationBarrier

InitializeSynchronizationBarrier

Barreiras de sincronização

APIs Vertdll disponíveis em enclaves de VBS