Compartir a través de


Clase CSyncObject

Una clase virtual pura que proporciona funcionalidad común para objetos de sincronización en Win32.

Sintaxis

class CSyncObject : public CObject

Miembros

Constructores públicos

Nombre Descripción
CSyncObject::CSyncObject Construye un objeto CSyncObject.

Métodos públicos

Nombre Descripción
CSyncObject::Lock Obtiene acceso al objeto de sincronización.
CSyncObject::Unlock Obtiene acceso al objeto de sincronización.

Operadores públicos

Nombre Descripción
CSyncObject::operator HANDLE Proporciona acceso al objeto de sincronización.

Miembros de datos públicos

Nombre Descripción
CSyncObject::m_hObject Manipulador del objeto de sincronización subyacente.

Comentarios

La biblioteca MCF (Microsoft Foundation Class) proporciona varias clases derivadas de CSyncObject. Estos son CEvent, CMutex, CCriticalSection y CSemaphore.

Para más información sobre cómo usar los objetos de sincronización, consulte el artículo Multithreading: Procedimientos para usar las clases de sincronización.

Jerarquía de herencia

CObject

CSyncObject

Requisitos

Encabezado: afxmt.h

CSyncObject::CSyncObject

Construye un objeto de sincronización con el nombre proporcionado.

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

Parámetros

pstrName
El nombre del objeto. Si es NULL, pstrName será NULL.

CSyncObject::Lock

Llame a esta función para acceder al recurso controlado por el objeto de sincronización.

virtual BOOL Lock(DWORD dwTimeout = INFINITE);

Parámetros

dwTimeout
Especifica la cantidad de tiempo en milisegundos que se debe esperar para que el objeto de sincronización esté disponible (señalado). Si es INFINITE, Lock esperará hasta que se señale el objeto antes de completarse.

Valor devuelto

Distinto de cero si la función se realizó correctamente; de lo contrario, 0.

Comentarios

Si se señala al objeto de sincronización, Lock se devuelve correctamente y el subproceso ahora posee el objeto. Si el objeto de sincronización no está señalado (no disponible), Lock esperará el número de milisegundos especificados en el parámetro dwTimeOut a que el objeto de sincronización esté señalado. Si el objeto de sincronización no se ha señalado en la cantidad de tiempo especificada, Lock devuelve un error.

CSyncObject::m_hObject

Manipulador del objeto de sincronización subyacente.

HANDLE m_hObject;

MANIPULADOR CSyncObject::operator

Use este operador para obtener el manipulador del objeto CSyncObject.

operator HANDLE() const;

Valor devuelto

Si se ejecuta correctamente, el manipulador del objeto de sincronización; en caso contrario, NULL.

Comentarios

Puede usar el manipulador para llamar directamente a las API de Windows.

CSyncObject::Unlock

La declaración de Unlock sin parámetros es una función virtual pura y debe ser reemplazada por todas las clases que se derivan de CSyncObject.

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

Parámetros

lCount
No se usa en la implementación predeterminada.

lpPrevCount
No se usa en la implementación predeterminada.

Valor devuelto

La implementación predeterminada siempre devuelve TRUE.

Comentarios

La implementación predeterminada de la declaración con dos parámetros siempre devuelve TRUE. Se llama a esta función para liberar el acceso al objeto de sincronización que pertenece al subproceso que realiza la llamada. 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.

Consulte también

CObject (clase)
Gráfico de jerarquías