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