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


Класс CSyncObject

Замечание

Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

Чисто виртуальный класс, обеспечивающий общую функциональность объектов синхронизации 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
Диаграмма иерархии