deleteCriticalSection 函数 (synchapi.h)

释放由无所有者的关键节对象使用的所有资源。

语法

void DeleteCriticalSection(
  [in, out] LPCRITICAL_SECTION lpCriticalSection
);

参数

[in, out] lpCriticalSection

指向关键节对象的指针。 对象必须以前已使用 InitializeCriticalSection 函数进行过初始化。

返回值

备注

删除关键节对象会释放该对象使用的所有系统资源。 调用方负责确保关键节对象是无所有者的,并且进程中其他线程调用的任何关键节函数不会访问指定的CRITICAL_SECTION结构。

删除关键节对象后,不要引用任何对关键部分进行操作的函数中的对象, (如 EnterCriticalSectionTryEnterCriticalSectionLeaveCriticalSection) InitializeCriticalSection 和 InitializeCriticalSectionAndSpinCount 以外的其他部分。 如果尝试这样做,可能会发生内存损坏和其他意外错误。

如果在关键节仍归其所有的情况下被删除,则等待已删除的关键节所有权的线程的状态是不确定的。

示例

有关使用 DeleteCriticalSection 的示例,请参阅 Using Critical Section Objects

要求

   
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 synchapi.h (包括 Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

关键节对象

EnterCriticalSection

InitializeCriticalSection

LeaveCriticalSection

同步函数

TryEnterCriticalSection

VBS enclave 中可用的 Vertdll API