CriticalSection 类

表示关键部分对象。

语法

class CriticalSection;

成员

构造函数

名称 描述
CriticalSection::CriticalSection 初始化类似 mutex 对象、但只能由单一进程的线程使用的同步对象。
CriticalSection::~CriticalSection 取消初始化和销毁当前 CriticalSection 对象。

公共方法

名称 描述
CriticalSection::IsValid 指示当前的临界部分是否有效。
CriticalSection::Lock 等待指定关键部分对象的所有权。 此函数将在授予调用线程所有权时返回。
CriticalSection::TryLock 尝试进入关键部分而不发生阻塞。 如果调用成功,调用线程将获取关键部分的所有权。

受保护的数据成员

名称 描述
CriticalSection::cs_ 声明关键部分数据成员。

继承层次结构

CriticalSection

要求

标头:corewrappers.h

命名空间:Microsoft::WRL::Wrappers

CriticalSection::~CriticalSection

取消初始化和销毁当前 CriticalSection 对象。

WRL_NOTHROW ~CriticalSection();

CriticalSection::CriticalSection

初始化类似 mutex 对象、但只能由单一进程的线程使用的同步对象。

explicit CriticalSection(
   ULONG spincount = 0
);

参数

spincount
关键部分对象的旋转计数。 默认值为 0。

注解

有关关键部分和旋转计数的详细信息,请参阅 Windows API 文档的“Synchronization”部分中的“InitializeCriticalSectionAndSpinCount”函数。

CriticalSection::cs_

声明关键部分数据成员。

CRITICAL_SECTION cs_;

备注

此数据成员受保护。

CriticalSection::IsValid

指示当前的临界部分是否有效。

bool IsValid() const;

返回值

默认情况下,始终返回 true

CriticalSection::Lock

等待指定关键部分对象的所有权。 此函数将在授予调用线程所有权时返回。

SyncLock Lock();

   static SyncLock Lock(
   _In_ CRITICAL_SECTION* cs
);

参数

cs
用户指定的关键部分对象。

返回值

可用于取消锁定当前关键部分的锁定对象。

注解

第一个 Lock 函数影响当前关键部分对象。 第二个 Lock 函数影响用户指定的关键部分。

CriticalSection::TryLock

尝试进入关键部分而不发生阻塞。 如果调用成功,调用线程将获取关键部分的所有权。

SyncLock TryLock();

static SyncLock TryLock(
   _In_ CRITICAL_SECTION* cs
);

参数

cs
用户指定的关键部分对象。

返回值

如果成功进入关键部分或当前线程已经拥有关键部分,则为非零值。 如果另一个线程已拥有关键部分,则为零。

备注

第一个 TryLock 函数影响当前关键部分对象。 第二个 TryLock 函数影响用户指定的关键部分。