Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
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.