Clase CSyncObjectCSyncObject Class

Una clase virtual pura que proporciona funcionalidad común para objetos de sincronización en Win32.A pure virtual class that provides functionality common to the synchronization objects in Win32.

SintaxisSyntax

class CSyncObject : public CObject

MiembrosMembers

Constructores públicosPublic Constructors

NombreName DescripciónDescription
CSyncObject::CSyncObjectCSyncObject::CSyncObject Construye un objeto CSyncObject.Constructs a CSyncObject object.

Métodos públicosPublic Methods

NombreName DescripciónDescription
CSyncObject::LockCSyncObject::Lock Obtiene acceso al objeto de sincronización.Gains access to the synchronization object.
CSyncObject::UnlockCSyncObject::Unlock Obtiene acceso al objeto de sincronización.Gains access to the synchronization object.

Operadores públicosPublic Operators

NombreName DescripciónDescription
CSyncObject::operator HANDLECSyncObject::operator HANDLE Proporciona acceso al objeto de sincronización.Provides access to the synchronization object.

Miembros de datos públicosPublic Data Members

NombreName DescripciónDescription
CSyncObject::m_hObjectCSyncObject::m_hObject El identificador del objeto de sincronización subyacente.The handle to the underlying synchronization object.

ObservacionesRemarks

La biblioteca Microsoft Foundation Class proporciona CSyncObjectvarias clases derivadas de .The Microsoft Foundation Class Library provides several classes derived from CSyncObject. Se trata de CEvent, CMutex, CCriticalSectiony CSemaphore.These are CEvent, CMutex, CCriticalSection, and CSemaphore.

Para obtener información sobre cómo utilizar los objetos de sincronización, vea el artículo Multithreading: How to Use the Synchronization Classes.For information on how to use the synchronization objects, see the article Multithreading: How to Use the Synchronization Classes.

Jerarquía de herenciaInheritance Hierarchy

CObjectCObject

CSyncObject

RequisitosRequirements

Encabezado: afxmt.hHeader: afxmt.h

CSyncObject::CSyncObjectCSyncObject::CSyncObject

Construye un objeto de sincronización con el nombre proporcionado.Constructs a synchronization object with the supplied name.

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

ParámetrosParameters

pstrNamepstrName
Nombre del objeto.The name of the object. Si NULL, pstrName será null.If NULL, pstrName will be null.

CSyncObject::LockCSyncObject::Lock

Llame a esta función para obtener acceso al recurso controlado por el objeto de sincronización.Call this function to gain access to the resource controlled by the synchronization object.

virtual BOOL Lock(DWORD dwTimeout = INFINITE);

ParámetrosParameters

dwTimeoutdwTimeout
Especifica la cantidad de tiempo en milisegundos que se debe esperar a que el objeto de sincronización esté disponible (señalizado).Specifies the amount of time in milliseconds to wait for the synchronization object to be available (signaled). Si INFINITE, Lock esperará hasta que se señale el objeto antes de volver.If INFINITE, Lock will wait until the object is signaled before returning.

Valor devueltoReturn Value

Distinto de cero si la función se realizó correctamente; de lo contrario 0.Nonzero if the function was successful; otherwise 0.

ObservacionesRemarks

Si se señala el Lock objeto de sincronización, se devolverá correctamente y el subproceso ahora es el propietario del objeto.If the synchronization object is signaled, Lock will return successfully and the thread now owns the object. Si el objeto de sincronización no Lock está señalizado (no está disponible), esperará a que el objeto de sincronización se señale hasta el número de milisegundos especificado en el parámetro dwTimeOut.If the synchronization object is nonsignaled (unavailable), Lock will wait for the synchronization object to become signaled up to the number of milliseconds specified in the dwTimeOut parameter. Si el objeto de sincronización no se señaló Lock en la cantidad de tiempo especificada, devuelve el error.If the synchronization object did not become signaled in the specified amount of time, Lock returns failure.

CSyncObject::m_hObjectCSyncObject::m_hObject

El identificador del objeto de sincronización subyacente.The handle to the underlying synchronization object.

HANDLE m_hObject;

CSyncObject::operator HANDLECSyncObject::operator HANDLE

Utilice este operador para obtener CSyncObject el identificador del objeto.Use this operator to get the handle of the CSyncObject object.

operator HANDLE() const;

Valor devueltoReturn Value

Si se realiza correctamente, el identificador del objeto de sincronización; de lo contrario, NULL.If successful, the handle of the synchronization object; otherwise, NULL.

ObservacionesRemarks

Puede usar el identificador para llamar a las API de Windows directamente.You can use the handle to call Windows APIs directly.

CSyncObject::UnlockCSyncObject::Unlock

La declaración de Unlock no tener parámetros es una función virtual CSyncObjectpura y debe ser reemplazada por todas las clases derivadas de .The declaration of Unlock with no parameters is a pure virtual function, and must be overridden by all classes deriving from CSyncObject.

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

ParámetrosParameters

lCountlCount
No se utiliza en la implementación predeterminada.Not used by default implementation.

lpPrevCountlpPrevCount
No se utiliza en la implementación predeterminada.Not used by default implementation.

Valor devueltoReturn Value

La implementación predeterminada siempre devuelve TRUE.Default implementation always returns TRUE.

ObservacionesRemarks

La implementación predeterminada de la declaración con dos parámetros siempre devuelve TRUE.The default implementation of the declaration with two parameters always returns TRUE. Esta función se llama para liberar el acceso al objeto de sincronización propiedad del subproceso que realiza la llamada.This function is called to release access to the synchronization object owned by the calling thread. La segunda declaración se proporciona para objetos de sincronización como semáforos que permiten más de un acceso a un recurso controlado.The second declaration is provided for synchronization objects such as semaphores that allow more than one access of a controlled resource.

Consulte tambiénSee also

Clase CObjectCObject Class
Gráfico de jerarquíasHierarchy Chart