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
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 retorno
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 retorno
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 retorno
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.