Поделиться через


Класс CSyncObject

Чисто виртуальный класс, обеспечивающий общую функциональность объектов синхронизации Win32.

Синтаксис

class CSyncObject : public CObject

Участники

Открытые конструкторы

Имя Описание
CSyncObject::CSyncObject Формирует объект CSyncObject.

Открытые методы

Имя Описание
CSyncObject::Lock Получает доступ к объекту синхронизации.
CSyncObject::Unlock Получает доступ к объекту синхронизации.

Открытые операторы

Имя Описание
CSyncObject::operator HANDLE Предоставляет доступ к объекту синхронизации.

Открытые члены данных

Имя Описание
CSyncObject::m_hObject Дескриптор базового объекта синхронизации.

Замечания

Библиотека классов Microsoft Foundation предоставляет несколько классов, производных от CSyncObject. Это CEvent, CMutex, CCriticalSection и CSemaphore.

Сведения об использовании объектов синхронизации см. в статье "Многопоточность: использование классов синхронизации".

Иерархия наследования

CObject

CSyncObject

Требования

Заголовок: afxmt.h

CSyncObject::CSyncObject

Создает объект синхронизации с указанным именем.

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

Параметры

pstrName
Имя объекта. Если значение NULL, pstrName будет иметь значение NULL.

CSyncObject::Lock

Вызовите эту функцию, чтобы получить доступ к ресурсу, управляемому объектом синхронизации.

virtual BOOL Lock(DWORD dwTimeout = INFINITE);

Параметры

dwTimeout
Указывает время в миллисекундах для ожидания доступности объекта синхронизации (сигнализировано). Если ПАРАМЕТР INFINITE, Lock дождется, пока объект не будет сигнален перед возвратом.

Возвращаемое значение

Ненулевое значение, если функция была успешной; в противном случае — 0.

Замечания

Если объект синхронизации сигнализирует, возвращается успешно, Lock а поток теперь владеет объектом. Если объект синхронизации не назначен (недоступен), Lock ожидает, что объект синхронизации будет сигнализирован до количества миллисекунда, указанного в параметре dwTimeOut . Если объект синхронизации не был сигнализирован в течение указанного периода времени, Lock возвращает ошибку.

CSyncObject::m_hObject

Дескриптор базового объекта синхронизации.

HANDLE m_hObject;

CSyncObject::operator HANDLE

Используйте этот оператор, чтобы получить дескриптор CSyncObject объекта.

operator HANDLE() const;

Возвращаемое значение

В случае успешного выполнения дескриптор объекта синхронизации; в противном случае значение NULL.

Замечания

Вы можете использовать дескриптор для вызова API Windows напрямую.

CSyncObject::Unlock

Объявление Unlock без параметров является чистой виртуальной функцией и должно быть переопределено всеми классами, производными от CSyncObject.

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

Параметры

lCount
Не используется по умолчанию.

lpPrevCount
Не используется по умолчанию.

Возвращаемое значение

Реализация по умолчанию всегда возвращает ЗНАЧЕНИЕ TRUE.

Замечания

Реализация объявления по умолчанию с двумя параметрами всегда возвращает ЗНАЧЕНИЕ TRUE. Эта функция вызывается для освобождения доступа к объекту синхронизации, принадлежащей вызывающей потоку. Второе объявление предоставляется для объектов синхронизации, таких как семафоры, разрешающие более одного доступа к управляемому ресурсу.

См. также

Класс CObject
Диаграмма иерархии