Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот класс предоставляет методы для получения и освобождения владения критически важным объектом раздела.
Синтаксис
class CComSafeDeleteCriticalSection : public CComCriticalSection
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CComSafeDeleteCriticalSection::CComSafeDeleteCriticalSection | Конструктор. |
CComSafeDeleteCriticalSection::~CComSafeDeleteCriticalSection | Деструктор |
Открытые методы
Имя | Описание |
---|---|
CComSafeDeleteCriticalSection::Init | Создает и инициализирует объект критического раздела. |
CComSafeDeleteCriticalSection::Lock | Получает владение объектом критического раздела. |
CComSafeDeleteCriticalSection::Term | Освобождает системные ресурсы, используемые объектом критического раздела. |
Элементы данных
Элемент данных | Description |
---|---|
m_bInitialized | Помечает, был ли инициализирован внутренний CRITICAL_SECTION объект. |
Замечания
CComSafeDeleteCriticalSection
производный от класса CComCriticalSection. CComSafeDeleteCriticalSection
Однако предоставляет дополнительные механизмы безопасности по CComCriticalSection.
Если экземпляр CComSafeDeleteCriticalSection
выходит из области или явно удаляется из памяти, базовый критически важный объект раздела будет автоматически очищаться, если он по-прежнему действителен. Кроме того, метод CComSafeDeleteCriticalSection::Term завершится корректно, если базовый критически важный объект раздела еще не выделен или уже освобожден из памяти.
Дополнительные сведения о вспомогательных классах критических разделов см. в разделе CComCriticalSection .
Иерархия наследования
CComSafeDeleteCriticalSection
Требования
Заголовок: atlcore.h
CComSafeDeleteCriticalSection::CComSafeDeleteCriticalSection
Конструктор.
CComSafeDeleteCriticalSection();
Замечания
Задает элемент данных m_bInitialized значение FALSE.
CComSafeDeleteCriticalSection::~CComSafeDeleteCriticalSection
Деструктор
~CComSafeDeleteCriticalSection() throw();
Замечания
Освобождает внутренний CRITICAL_SECTION
объект из памяти, если элемент данных m_bInitialized имеет значение TRUE.
CComSafeDeleteCriticalSection::Init
Вызывает реализацию базового класса Init и задает значение TRUE в m_bInitialized значение TRUE в случае успешного выполнения.
HRESULT Init() throw();
Возвращаемое значение
Возвращает результат CComCriticalSection::Init.
CComSafeDeleteCriticalSection::Lock
Вызывает реализацию базового класса Lock.
HRESULT Lock();
Возвращаемое значение
Возвращает результат CComCriticalSection::Lock.
Замечания
Этот метод предполагает, что элемент данных m_bInitialized имеет значение TRUE при записи. Утверждение создается в сборках отладки, если это условие не выполняется.
Дополнительные сведения о поведении функции см. в разделе CComCriticalSection::Lock.
CComSafeDeleteCriticalSection::m_bInitialized
Помечает, был ли инициализирован внутренний CRITICAL_SECTION
объект.
bool m_bInitialized;
Замечания
Элемент m_bInitialized
данных используется для отслеживания допустимости базового CRITICAL_SECTION
объекта, связанного с классом CComSafeDeleteCriticalSection . Базовый CRITICAL_SECTION
объект не будет пытаться освободиться из памяти, если этот флаг не имеет значения TRUE.
CComSafeDeleteCriticalSection::Term
Вызывает реализацию базового класса CComCriticalSection::Term , если внутренний CRITICAL_SECTION
объект действителен.
HRESULT Term() throw();
Возвращаемое значение
Возвращает результат CComCriticalSection::Term или S_OK, если m_bInitialized задано значение FALSE при записи.
Замечания
Этот метод безопасно вызывать, даже если внутренний CRITICAL_SECTION
объект недопустим. Деструктор этого класса вызывает этот метод, если элемент данных m_bInitialized имеет значение TRUE.