Função InitializeCriticalSection (synchapi.h)
Inicializa um objeto de seção crítico.
Sintaxe
void InitializeCriticalSection(
[out] LPCRITICAL_SECTION lpCriticalSection
);
Parâmetros
[out] lpCriticalSection
Um ponteiro para o objeto de seção crítico.
Retornar valor
Essa função não retorna um valor.
Windows Server 2003 e Windows XP: Em situações de memória baixa, InitializeCriticalSection pode gerar uma exceção STATUS_NO_MEMORY . A partir do Windows Vista, essa exceção foi eliminada e InitializeCriticalSection sempre é bem-sucedida, mesmo em situações de memória baixa.
Comentários
Os threads de um único processo podem usar um objeto de seção crítico para sincronização de exclusão mútua. Não há nenhuma garantia sobre a ordem em que os threads obterão a propriedade da seção crítica, no entanto, o sistema será justo com todos os threads.
O processo é responsável por alocar a memória usada por um objeto de seção crítico, o que pode ser feito declarando uma variável do tipo CRITICAL_SECTION. Antes de usar uma seção crítica, algum thread do processo deve inicializar o objeto.
Depois que um objeto de seção crítico tiver sido inicializado, os threads do processo poderão especificar o objeto na função EnterCriticalSection, TryEnterCriticalSection ou LeaveCriticalSection para fornecer acesso mutuamente exclusivo a um recurso compartilhado. Para sincronização semelhante entre os threads de processos diferentes, use um objeto mutex.
Um objeto de seção crítico não pode ser movido ou copiado. O processo também não deve modificar o objeto, mas deve tratá-lo como logicamente opaco. Use apenas as funções de seção críticas para gerenciar objetos de seção críticos. Quando terminar de usar a seção crítica, chame a função DeleteCriticalSection .
Um objeto de seção crítico deve ser excluído antes que ele possa ser reinicializado. Inicializar uma seção crítica que já foi inicializada resulta em um comportamento indefinido.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | synchapi.h (inclua Windows.h no Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |