使用临界区封装的自解锁CAutoLock
2022-01-16
58
0
自动锁使用方法:
//加锁
{
CAutoLock lock(m_MsgSendCriticalSection);
//do something
}
由于使用的是CRITICAL_SECTION,所以只适用于多线程之间的同步,不能适用于多进程的同步。
AutoLock.h
class CAutoLock
{
public:
CAutoLock(CRITICAL_SECTION& sec);
~CAutoLock();
private:
CRITICAL_SECTION* m_sec;
};
AutoLock.cpp
#include "AutoLock.h"
CAutoLock::CAutoLock(CRITICAL_SECTION& sec)
{
m_sec = &sec;
EnterCriticalSection(m_sec);
}
CAutoLock::~CAutoLock()
{
LeaveCriticalSection(m_sec);
}