Класс Ксинкобжект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

CObjectCObject

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