Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Не реентерабельный мьютекс, который явно учитывает среду выполнения Concurrency Runtime.
Синтаксис
class critical_section;
Участники
Общедоступные typedefы
| Имя | Описание |
|---|---|
native_handle_type |
Ссылка на объект critical_section. |
Открытые классы
| Имя | Описание |
|---|---|
| Класс critical_section::scoped_lock | Исключениебезопасный RAII-оболочка для объекта critical_section. |
Открытые конструкторы
| Имя | Описание |
|---|---|
| критическая_секция | Создает новый критический раздел. |
| Деструктор ~critical_section | Уничтожает критически важный раздел. |
Открытые методы
| Имя | Описание |
|---|---|
| блокировка | Получает этот критически важный раздел. |
| native_handle | Возвращает нативный дескриптор платформы, если он существует. |
| try_lock | Пытается получить защелку, не блокируя. |
| try_lock_for | Пытается получить блокировку без ожидания в течение указанного числа миллисекунд. |
| разблокировать | Разблокирует критически важный раздел. |
Замечания
Дополнительные сведения см. в разделе "Структуры данных синхронизации".
Иерархия наследования
critical_section
Требования
Заголовок: concrt.h
Пространство имен: конкурентность
критическая секция
Создает новый критический раздел.
critical_section();
~критическая_секция
Уничтожает критически важный раздел.
~critical_section();
Замечания
Ожидается, что блокировка больше не хранится при запуске деструктора. Разрушение критической секции при удерживаемой блокировке приводит к неопределенному поведению.
замок
Получает этот критически важный раздел.
void lock();
Замечания
Часто безопаснее использовать конструкцию scoped_lock для безопасного для исключений получения и освобождения объекта critical_section.
Если блокировка уже удерживается в контексте вызова, выбрасывается исключение improper_lock.
native_handle
Возвращает нативный дескриптор платформы, если он существует.
native_handle_type native_handle();
Возвращаемое значение
Ссылка на критически важный раздел.
Замечания
critical_section Объект не связан с нативным дескриптором, специфичным для платформы операционной системы Windows. Метод просто возвращает ссылку на сам объект.
класс critical_section::scoped_lock
Исключениебезопасный RAII-оболочка для объекта critical_section.
class scoped_lock;
scoped_lock::scoped_lock
Создает объект scoped_lock и получает объект critical_section, переданный в параметре _Critical_section. Если критически важный раздел хранится другим потоком, этот вызов блокируется.
explicit _CRTIMP scoped_lock(critical_section& _Critical_section);
Параметры
_Критическая_секция
Критически важный раздел для блокировки.
scoped_lock::~scoped_lock
Уничтожает объект scoped_lock и освобождает критический раздел, предоставленный в его конструкторе.
~scoped_lock();
try_lock
Пытается получить защелку, не блокируя.
bool try_lock();
Возвращаемое значение
Если блокировка была приобретена, значение true; в противном случае — значение false.
try_lock_for
Пытается получить блокировку без ожидания в течение указанного числа миллисекунд.
bool try_lock_for(unsigned int _Timeout);
Параметры
_Тайм-аут
Количество миллисекунд ожидания перед тайм-аутом.
Возвращаемое значение
Если блокировка была приобретена, значение true; в противном случае — значение false.
разблокировать
Разблокирует критически важный раздел.
void unlock();