写一段代码测试一下博客的代码粘贴。:)
该类用来封装Windows的CRITICAL_SECTION,对于Singleton的类,只需声明一个CCriticalSectionAdapter的成员变量就可以了。
CriticalSectionAdapter.h
class CCriticalSectionAdapter
{
public:
CCriticalSectionAdapter();
~CCriticalSectionAdapter();
void lock();
void unlock();
private:
CCriticalSectionAdapter(CCriticalSectionAdapter& cs) {}
CCriticalSectionAdapter* operator= (CCriticalSectionAdapter& cs) {}
private:
CRITICAL_SECTION m_cs;
};
CriticalSection.cpp
#include "CriticalSectionAdapter.h"
CCriticalSectionAdapter::CCriticalSectionAdapter()
{
InitializeCriticalSection(&m_cs);
}
CCriticalSectionAdapter::~CCriticalSectionAdapter()
{
DeleteCriticalSection(&m_cs);
}
void CCriticalSectionAdapter::lock()
{
EnterCriticalSection(&m_cs);
}
void CCriticalSectionAdapter::unlock()
{
LeaveCriticalSection(&m_cs);
}