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
函数影响用户指定的关键部分。