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