namespace fs
{
//封装临界对象
class Critical_Section
{
public:
Critical_Section()
{
InitializeCriticalSection(&m_Cs);
}
~Critical_Section()
{
DeleteCriticalSection(&m_Cs);
}
void EnterSection()
{
EnterCriticalSection(&m_Cs);
}
void LeaveSection()
{
LeaveCriticalSection(&m_Cs);
}
private:
CRITICAL_SECTION m_Cs;
};
class AutoLock
{
public:
AutoLock : m_cs(cs)(Critical_Section& cs)
{
m_cs.EnterSection();
}
~AutoLock()
{
m_cs.LeaveSection();
}
private:
Critical_Section& m_cs;
};
}
需要添加头文件winbase.32