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