Поделиться через


Функция 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

См. также

Объекты критического раздела

EnterCriticalSection

InitializeCriticalSection

LeaveCriticalSection

Функции синхронизации

TryEnterCriticalSection

API-интерфейсы Vertdll, доступные в анклавах VBS