Compartilhar via


Classe CCriticalSection

Representa uma "seção crítica" — um objeto de sincronização que permite que um thread por um time para acessar um recurso ou uma seção de código.

class CCriticalSection : public CSyncObject

Comentários

As seções críticas são úteis quando apenas um thread por vez pode ter permissão para modificar dados ou algum Outros recurso controlado.Por exemplo, adicionar nós a uma lista vinculada é um processo só deve ser permitido por um segmento em um time.Usando um CCriticalSection objeto para controlar a lista vinculada, apenas um thread por vez pode obter acesso à lista.

Observação:

A funcionalidade dos CCriticalSection classe é fornecida por um Win32 real CRITICAL_SECTION objeto.

Seções críticas são utilizadas em vez de mutexes (consulte CMutex) Quando a velocidade é fundamental e o recurso não será usado em limites de processo.

Há dois métodos para usar um CCriticalSection objeto: autônomo e incorporado em uma classe.

  • Método independente para usar um autônomo CCriticalSection objeto, construir o CCriticalSection objeto quando for necessário. Após um retorno bem-sucedido do construtor, bloquear explicitamente o objeto com uma telefonar para Bloqueio. De telefonarDesbloquear quando tiver concluído a acessar a seção crítica.Esse método, ao mesmo tempo possamos para alguém ler seu código fonte, é mais propenso a erros sistema autônomo deve lembrar-se bloquear e desbloquear a seção crítica antes e depois de acesso.

    Um método mais preferível é usar o CSingleLock classe.Ele também possui um Lock e Unlock método, mas você não precisa se preocupar sobre o recurso de desbloqueio se ocorrer uma exceção.

  • Método incorporado você também pode compartilhar uma classe com vários segmentos, adicionando um CCriticalSection-tipo de membro de dados para a classe e bloqueio o membro de dados quando necessário.

Para obter mais informações sobre como usar CCriticalSection objetos, consulte o artigo Multithreading: Como usar a sincronização classes.

Requisitos

Cabeçalho: afxmt.h

Consulte também

Referência

Classe CSyncObject

Gráfico de hierarquia

Classe CMutex

Outros recursos

CCriticalSection membros