64,645
社区成员
发帖
与我相关
我的任务
分享
class Lock
{
public:
explicit Lock(const CRITICAL_SECTION *cs):cs_(cs) { EnterCriticalSection(cs_); }
~Lock() {LeaveCriticalSection(cs_);}
private:
Lock(const Lock&);
Lock& operator=(const Lock&);
private:
CRITICAL_SECTION *cs_;
}
这样使用:
CRITICAL_SECTION cs;
void Read()
{
{
Lock lock(&cs);
//保护的代码
}
}
void Write()
{
{
Lock lock(&cs);
//保护的代码
}
}
class Lock
{
public:
Lock() { InitializeCriticalSection(&cs_); }
~Lock() { DeleteCriticalSection(&cs_); }
private:
Lock(const Lock&);
Lock& operator=(const Lock&);
private:
CRITICAL_SECTION cs_;
}
可以这样使用(注意,需要大括号来保证作用域)
{
Lock lock;
//保护的内容
......
}