CriticalSection - класс
Представляет объект критического раздела.
Синтаксис
class CriticalSection;
Участники
Конструктор
Имя | Описание |
---|---|
CriticalSection::CriticalSection | Инициализирует объект синхронизации, аналогичный объекту мьютекса, но может использоваться только потоками одного процесса. |
CriticalSection::~CriticalSection | Деинициализирует и уничтожает текущий CriticalSection объект. |
Открытые методы
Имя | Описание |
---|---|
CriticalSection::IsValid | Указывает, является ли текущий критически важный раздел допустимым. |
Критическоеsection::Lock | Ожидает владения указанным объектом критического раздела. Функция возвращается, когда вызывающему потоку предоставлено владение. |
CriticalSection::TryLock | Пытается ввести критически важный раздел без блокировки. Если вызов выполнен успешно, вызывающий поток берет на себя ответственность за критически важный раздел. |
Защищенные члены данных
Имя | Описание |
---|---|
CriticalSection::cs_ | Объявляет критически важный элемент данных раздела. |
Иерархия наследования
CriticalSection
Требования
Заголовок: corewrappers.h
Пространство имен: Microsoft::WRL::Оболочки
CriticalSection::~CriticalSection
Деинициализирует и уничтожает текущий CriticalSection
объект.
WRL_NOTHROW ~CriticalSection();
CriticalSection::CriticalSection
Инициализирует объект синхронизации, аналогичный объекту мьютекса, но может использоваться только потоками одного процесса.
explicit CriticalSection(
ULONG spincount = 0
);
Параметры
spincount
Счетчик прокруток для объекта критической секции. Значение по умолчанию равно 0.
Замечания
Дополнительные сведения о критически важных разделах и спин-числах см InitializeCriticalSectionAndSpinCount
. в разделе функции в Synchronization
документации по API Windows.
CriticalSection::cs_
Объявляет критически важный элемент данных раздела.
CRITICAL_SECTION cs_;
Замечания
Эти данные-член защищены.
CriticalSection::IsValid
Указывает, является ли текущий критически важный раздел допустимым.
bool IsValid() const;
Возвращаемое значение
По умолчанию всегда возвращается true
.
Критическоеsection::Lock
Ожидает владения указанным объектом критического раздела. Функция возвращается, когда вызывающему потоку предоставлено владение.
SyncLock Lock();
static SyncLock Lock(
_In_ CRITICAL_SECTION* cs
);
Параметры
cs
Определенный пользователем объект критической секции.
Возвращаемое значение
Объект блокировки, который можно использовать, чтобы разблокировать текущую критическую секцию.
Замечания
Первая функция Lock
влияет на текущий объект критической секции. Вторая функция Lock
влияет на указанную пользователем критическую секцию.
CriticalSection::TryLock
Пытается ввести критически важный раздел без блокировки. Если вызов выполнен успешно, вызывающий поток берет на себя ответственность за критически важный раздел.
SyncLock TryLock();
static SyncLock TryLock(
_In_ CRITICAL_SECTION* cs
);
Параметры
cs
Определенный пользователем объект критической секции.
Возвращаемое значение
Ненулевое значение, если критический раздел успешно введен или текущий поток уже владеет критическим разделом. Ноль, если другой поток уже владеет критически важным разделом.
Замечания
Первая функция TryLock
влияет на текущий объект критической секции. Вторая функция TryLock
влияет на указанную пользователем критическую секцию.