Функция InitializeCriticalSection (synchapi.h)
Инициализирует объект критического раздела.
Синтаксис
void InitializeCriticalSection(
[out] LPCRITICAL_SECTION lpCriticalSection
);
Параметры
[out] lpCriticalSection
Указатель на объект критического раздела.
Возвращаемое значение
Эта функция не возвращает значение.
Windows Server 2003 и Windows XP: При нехватке памяти InitializeCriticalSection может вызвать исключение STATUS_NO_MEMORY . Начиная с Windows Vista, это исключение было устранено, и InitializeCriticalSection всегда завершается успешно, даже при нехватке памяти.
Комментарии
Потоки одного процесса могут использовать объект критического раздела для синхронизации с взаимным исключением. Нет никакой гарантии относительно порядка, в котором потоки получат право владения критически важным разделом, однако система будет справедливой по отношению ко всем потокам.
Этот процесс отвечает за выделение памяти, используемой объектом критического раздела, что можно сделать, объявив переменную типа CRITICAL_SECTION. Перед использованием критического раздела некоторый поток процесса должен инициализировать объект .
После инициализации объекта критического раздела потоки процесса могут указать объект в функции EnterCriticalSection, TryEnterCriticalSection или LeaveCriticalSection , чтобы обеспечить взаимоисключающий доступ к общему ресурсу. Для аналогичной синхронизации между потоками разных процессов используйте объект мьютекса.
Объект критического раздела нельзя переместить или скопировать. Процесс также не должен изменять объект , но должен рассматривать его как логически непрозрачный. Используйте только функции критического раздела для управления объектами критических разделов. Завершив работу с критическим разделом, вызовите функцию DeleteCriticalSection .
Перед повторной инициализацией объекта критического раздела необходимо удалить. Инициализация критического раздела, который уже был инициализирован, приводит к неопределенному поведению.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | synchapi.h (включает Windows.h в Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |