Класс 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.
Сведения об использовании объектов синхронизации см. в статье "Многопоточность: использование классов синхронизации".
Иерархия наследования
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. Эта функция вызывается для освобождения доступа к объекту синхронизации, принадлежащей вызывающей потоку. Второе объявление предоставляется для объектов синхронизации, таких как семафоры, разрешающие более одного доступа к управляемому ресурсу.