Partilhar via


Classe CSyncObject

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Uma classe puramente virtual que fornece funcionalidades comuns aos objetos de sincronização no Win32.

Sintaxe

class CSyncObject : public CObject

Membros

Construtores Públicos

Nome Description
CSyncObject::CSyncObject Constrói um CSyncObject objeto.

Métodos Públicos

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

Operadores Públicos

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

Membros de Dados Públicos

Nome Description
CSyncObject::m_hObject O handle do objeto de sincronização subjacente.

Observações

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

Para informações sobre como usar os objetos de sincronização, veja o artigo Multithreading: Como Usar as Classes de Sincronização.

Hierarquia de herança

CObject

CSyncObject

Requerimentos

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 for NULL, pstrName será null.

CSyncObject::Lock

Chame esta função para aceder ao recurso controlado pelo objeto de sincronização.

virtual BOOL Lock(DWORD dwTimeout = INFINITE);

Parâmetros

dwTimeout
Especifica o tempo em milissegundos para esperar que o objeto de sincronização esteja disponível (sinalizado). Se for INFINITO, Lock esperará até que o objeto seja sinalizado antes de regressar.

Valor de retorno

Não nula se a função fosse bem-sucedida; caso contrário, 0.

Observações

Se o objeto de sincronização for sinalizado, Lock retornará com sucesso e a thread passará a ser dona do objeto. Se o objeto de sincronização não estiver sinalizado (indisponível), Lock aguardará que o objeto de sincronização seja sinalizado até ao número de milissegundos especificados no parâmetro dwTimeOut . Se o objeto de sincronização não foi sinalizado no tempo especificado, Lock retorna a falha.

CSyncObject::m_hObject

O handle do objeto de sincronização subjacente.

HANDLE m_hObject;

CSyncObject::operator HANDLE

Usa este operador para obter o controlo do CSyncObject objeto.

operator HANDLE() const;

Valor de retorno

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

Observações

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

CSyncObject::Unlock

A declaração de Unlock sem parâmetros é uma função puramente virtual, e deve ser sobreposta por todas as classes derivadas de CSyncObject.

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

Parâmetros

Conde
Não é usado pela implementação por defeito.

lpPrevCount
Não é usado pela implementação por defeito.

Valor de retorno

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

Observações

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

Consulte também

CObject Classe
Gráfico de Hierarquia