Classe CriticalSection
Representa um objeto de seção crítico.
Sintaxe
class CriticalSection;
Membros
Construtor
Nome | Descrição |
---|---|
CriticalSection::CriticalSection | Inicializa um objeto de sincronização semelhante a um objeto mutex, mas pode ser usado apenas pelos threads de um único processo. |
CriticalSection::~CriticalSection | Desinicializa e destrói o objeto atual CriticalSection . |
Métodos públicos
Nome | Descrição |
---|---|
CriticalSection::IsValid | Indica se a seção crítica atual é válida. |
CriticalSection::Lock | Aguarda a propriedade do objeto de seção crítica especificado. A função retorna quando o thread de chamada recebe a propriedade. |
CriticalSection::TryLock | Tenta inserir uma seção crítica sem bloquear. Se a chamada for bem-sucedida, o thread de chamada assumirá a propriedade da seção crítica. |
Membros de dados protegidos
Nome | Descrição |
---|---|
CriticalSection::cs_ | Declara um membro de dados de seção crítica. |
Hierarquia de herança
CriticalSection
Requisitos
Cabeçalho: corewrappers.h
Namespace: Microsoft::WRL::Wrappers
CriticalSection::~CriticalSection
Desinicializa e destrói o objeto atual CriticalSection
.
WRL_NOTHROW ~CriticalSection();
CriticalSection::CriticalSection
Inicializa um objeto de sincronização semelhante a um objeto mutex, mas pode ser usado apenas pelos threads de um único processo.
explicit CriticalSection(
ULONG spincount = 0
);
Parâmetros
spincount
A contagem de rotação para o objeto de seção crítica. O valor padrão é 0.
Comentários
Para obter mais informações sobre seções críticas e spincounts, consulte a InitializeCriticalSectionAndSpinCount
função na Synchronization
seção da documentação da API do Windows.
CriticalSection::cs_
Declara um membro de dados de seção crítica.
CRITICAL_SECTION cs_;
Comentários
Esse membro de dados está protegido.
CriticalSection::IsValid
Indica se a seção crítica atual é válida.
bool IsValid() const;
Valor de retorno
Por padrão, sempre retorna true
.
CriticalSection::Lock
Aguarda a propriedade do objeto de seção crítica especificado. A função retorna quando o thread de chamada recebe a propriedade.
SyncLock Lock();
static SyncLock Lock(
_In_ CRITICAL_SECTION* cs
);
Parâmetros
cs
Um objeto de seção crítica especificado pelo usuário.
Valor de retorno
Um objeto de bloqueio que pode ser usado para desbloquear a seção crítica atual.
Comentários
A primeira função Lock
afeta o objeto de seção crítica atual. A segunda função Lock
afeta uma seção crítica especificada pelo usuário.
CriticalSection::TryLock
Tenta inserir uma seção crítica sem bloquear. Se a chamada for bem-sucedida, o thread de chamada assumirá a propriedade da seção crítica.
SyncLock TryLock();
static SyncLock TryLock(
_In_ CRITICAL_SECTION* cs
);
Parâmetros
cs
Um objeto de seção crítica especificado pelo usuário.
Valor de retorno
Um valor diferente de zero se a seção crítica for inserida com êxito ou se o thread atual já possuir a seção crítica. Zero se outro thread já possuir a seção crítica.
Comentários
A primeira função TryLock
afeta o objeto de seção crítica atual. A segunda função TryLock
afeta uma seção crítica especificada pelo usuário.