Compartilhar via


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.