Класс КсинкобжектCSyncObject Class
Чисто виртуальный класс, обеспечивающий общую функциональность объектов синхронизации Win32.A pure virtual class that provides functionality common to the synchronization objects in Win32.
СинтаксисSyntax
class CSyncObject : public CObject
ЧленыMembers
Открытые конструкторыPublic Constructors
nameName | ОписаниеDescription |
---|---|
Ксинкобжект:: КсинкобжектCSyncObject::CSyncObject | Формирует объект CSyncObject .Constructs a CSyncObject object. |
Открытые методыPublic Methods
nameName | ОписаниеDescription |
---|---|
Ксинкобжект:: LockCSyncObject::Lock | Получает доступ к объекту синхронизации.Gains access to the synchronization object. |
Ксинкобжект:: UnlockCSyncObject::Unlock | Получает доступ к объекту синхронизации.Gains access to the synchronization object. |
Открытые операторыPublic Operators
ИмяName | ОписаниеDescription |
---|---|
ОБРАБОТЧИК Ксинкобжект:: operatorCSyncObject::operator HANDLE | Предоставляет доступ к объекту синхронизации.Provides access to the synchronization object. |
Открытые члены данныхPublic Data Members
ИмяName | ОписаниеDescription |
---|---|
Ксинкобжект:: m_hObjectCSyncObject::m_hObject | Маркер базового объекта синхронизации.The handle to the underlying synchronization object. |
КомментарииRemarks
Библиотека Microsoft Foundation Class предоставляет несколько классов, производных от CSyncObject
.The Microsoft Foundation Class Library provides several classes derived from CSyncObject
. Это цевент, кмутекс, ккритикалсектиони ксемафоре.These are CEvent, CMutex, CCriticalSection, and CSemaphore.
Сведения об использовании объектов синхронизации см. в статье многопоточность. Использование классов синхронизации.For information on how to use the synchronization objects, see the article Multithreading: How to Use the Synchronization Classes.
Иерархия наследованияInheritance Hierarchy
CSyncObject
ТребованияRequirements
Заголовок: афксмт. hHeader: afxmt.h
Ксинкобжект:: КсинкобжектCSyncObject::CSyncObject
Конструирует объект синхронизации с заданным именем.Constructs a synchronization object with the supplied name.
explicit CSyncObject(LPCTSTR pstrName);
virtual ~CSyncObject();
ПараметрыParameters
пстрнамеpstrName
Имя объекта.The name of the object. Если значение равно NULL, пстрнаме будет иметь значение null.If NULL, pstrName will be null.
Ксинкобжект:: LockCSyncObject::Lock
Вызовите эту функцию, чтобы получить доступ к ресурсу, управляемому объектом синхронизации.Call this function to gain access to the resource controlled by the synchronization object.
virtual BOOL Lock(DWORD dwTimeout = INFINITE);
ПараметрыParameters
двтимеаутdwTimeout
Указывает время ожидания (сигнала) объекта синхронизации (в миллисекундах).Specifies the amount of time in milliseconds to wait for the synchronization object to be available (signaled). В случае бесконечности Lock
будет ожидать передачи объекта перед возвратом.If INFINITE, Lock
will wait until the object is signaled before returning.
Возвращаемое значениеReturn Value
Ненулевое значение, если функция выполнена успешно; в противном случае — 0.Nonzero if the function was successful; otherwise 0.
КомментарииRemarks
Если объект синхронизации получает сигнал, возвращается значение Lock
успешно, и поток теперь владеет объектом.If the synchronization object is signaled, Lock
will return successfully and the thread now owns the object. Если объект синхронизации несигнальный (недоступен), Lock
ожидает, пока объект синхронизации получит сигнал о количестве миллисекунд, указанных в параметре двтимеаут .If the synchronization object is nonsignaled (unavailable), Lock
will wait for the synchronization object to become signaled up to the number of milliseconds specified in the dwTimeOut parameter. Если объект синхронизации не получил сигнал в течение указанного времени, Lock
возвращает ошибку.If the synchronization object did not become signaled in the specified amount of time, Lock
returns failure.
Ксинкобжект:: m_hObjectCSyncObject::m_hObject
Маркер базового объекта синхронизации.The handle to the underlying synchronization object.
HANDLE m_hObject;
ОБРАБОТЧИК Ксинкобжект:: operatorCSyncObject::operator HANDLE
Этот оператор используется для получения маркера CSyncObject
объекта.Use this operator to get the handle of the CSyncObject
object.
operator HANDLE() const;
Возвращаемое значениеReturn Value
В случае успеха — маркер объекта синхронизации; в противном случае значение NULL.If successful, the handle of the synchronization object; otherwise, NULL.
КомментарииRemarks
Вы можете использовать этот обработчик для непосредственного вызова интерфейсов API Windows.You can use the handle to call Windows APIs directly.
Ксинкобжект:: UnlockCSyncObject::Unlock
Объявление Unlock
без параметров является чистой виртуальной функцией и должно быть переопределено всеми классами, производными от CSyncObject
.The declaration of Unlock
with no parameters is a pure virtual function, and must be overridden by all classes deriving from CSyncObject
.
virtual BOOL Unlock() = 0; virtual BOOL Unlock(
LONG lCount,
LPLONG lpPrevCount = NULL);
ПараметрыParameters
lCountlCount
Не используется реализацией по умолчанию.Not used by default implementation.
лппревкаунтlpPrevCount
Не используется реализацией по умолчанию.Not used by default implementation.
Возвращаемое значениеReturn Value
Реализация по умолчанию всегда возвращает значение TRUE.Default implementation always returns TRUE.
КомментарииRemarks
Реализация по умолчанию объявления с двумя параметрами всегда возвращает значение TRUE.The default implementation of the declaration with two parameters always returns TRUE. Эта функция вызывается для освобождения доступа к объекту синхронизации, принадлежащему вызывающему потоку.This function is called to release access to the synchronization object owned by the calling thread. Второе объявление предоставляется для объектов синхронизации, таких как семафоры, которые разрешают более одного доступа к контролируемому ресурсу.The second declaration is provided for synchronization objects such as semaphores that allow more than one access of a controlled resource.
См. также разделSee also
CObject, классCObject Class
Иерархическая диаграммаHierarchy Chart