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