Compartilhar via


Classe CSyncObject

Uma classe virtual pura que fornece funcionalidade comum aos objetos de sincronização no Win32.

Sintaxe

class CSyncObject : public CObject

Membros

Construtores públicos

Nome Descrição
CSyncObject::CSyncObject Constrói um objeto CSyncObject.

Métodos públicos

Nome Descrição
CSyncObject::Lock Obtém acesso ao objeto de sincronização.
CSyncObject::Unlock Obtém acesso ao objeto de sincronização.

Operadores públicos

Nome Descrição
CSyncObject::operator HANDLE Fornece acesso ao objeto de sincronização.

Membros de Dados Públicos

Nome Descrição
CSyncObject::m_hObject O identificador para o objeto de sincronização subjacente.

Comentários

A Biblioteca Microsoft Foundation Class fornece várias classes derivadas de CSyncObject. Estes são CEvent, CMutex, CCriticalSection e CSemaphore.

Para obter informações sobre como usar os objetos de sincronização, confira o artigo Multithreading: como usar as classes de sincronização.

Hierarquia de herança

CObject

CSyncObject

Requisitos

Cabeçalho: afxmt.h

CSyncObject::CSyncObject

Constrói um objeto de sincronização com o nome fornecido.

explicit CSyncObject(LPCTSTR pstrName);
virtual ~CSyncObject();

Parâmetros

pstrName
O nome do objeto. Se NULL, pstrName será nulo.

CSyncObject::Lock

Chame essa função para obter acesso ao recurso controlado pelo objeto de sincronização.

virtual BOOL Lock(DWORD dwTimeout = INFINITE);

Parâmetros

dwTimeout
Especifica o tempo de espera em milissegundos para que o objeto de sincronização esteja disponível (sinalizado). Se INFINITE, Lock aguardará até que o objeto seja sinalizado antes de retornar.

Valor de Devolução

Diferente de zero se a função foi bem-sucedida, caso contrário, 0.

Comentários

Se o objeto de sincronização for sinalizado, Lock retornará com êxito e o thread agora será o proprietário do objeto. Se o objeto de sincronização não estiver atribuído (indisponível), Lock aguardará até que o objeto de sincronização seja sinalizado até o número de milissegundos especificado no parâmetro dwTimeOut. Se o objeto de sincronização não se tornou sinalizado no período de tempo especificado, Lock retornará a falha.

CSyncObject::m_hObject

O identificador para o objeto de sincronização subjacente.

HANDLE m_hObject;

CSyncObject::operator HANDLE

Use esse operador para obter o identificador do objeto CSyncObject.

operator HANDLE() const;

Valor de Devolução

Se for bem-sucedido, o identificador do objeto de sincronização, caso contrário, NULL.

Comentários

Você pode usar o identificador para chamar as APIs do Windows diretamente.

CSyncObject::Unlock

A declaração de Unlock sem parâmetros é uma função virtual pura e deve ser substituída por todas as classes provenientes de CSyncObject.

virtual BOOL Unlock() = 0; virtual BOOL Unlock(
    LONG lCount,
    LPLONG lpPrevCount = NULL);

Parâmetros

lCount
Não usado pela implementação padrão.

lpPrevCount
Não usado pela implementação padrão.

Valor de Devolução

A implementação padrão sempre retorna TRUE.

Comentários

A implementação padrão da declaração com dois parâmetros sempre retorna TRUE. Essa função é chamada para liberar o acesso ao objeto de sincronização pertencente ao thread de chamada. A segunda declaração é fornecida para objetos de sincronização, como semáforos que permitem mais de um acesso de um recurso controlado.

Confira também

Classe CObject
Gráfico da hierarquia