Функция DeleteCriticalSection (synchapi.h)
Освобождает все ресурсы, используемые объектом критического раздела без владельцев.
Синтаксис
void DeleteCriticalSection(
[in, out] LPCRITICAL_SECTION lpCriticalSection
);
Параметры
[in, out] lpCriticalSection
Указатель на объект критического раздела. Объект должен быть ранее инициализирован с помощью функции InitializeCriticalSection .
Возвращаемое значение
None
Remarks
Удаление объекта критического раздела освобождает все системные ресурсы, используемые объектом . Вызывающий объект отвечает за то, что объект критического раздела не является владельцем, а к указанной CRITICAL_SECTION структуре не будет обращаться какие-либо функции критического раздела, вызываемые другими потоками в процессе.
После удаления объекта критического раздела не ссылайтесь на объект в любой функции, которая работает с критическими разделами (такими как EnterCriticalSection, TryEnterCriticalSection и LeaveCriticalSection), кроме InitializeCriticalSection и InitializeCriticalSectionAndSpinCount. При попытке этого могут возникнуть повреждения памяти и другие непредвиденные ошибки.
Если критически важный раздел удаляется, пока он по-прежнему принадлежит, состояние потоков, ожидающих владения удаленным критическим разделом, не определено.
Примеры
Пример использования 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 |