54 lines
812 B
C
54 lines
812 B
C
|
#pragma once
|
|||
|
|
|||
|
#include <windows.h>
|
|||
|
//<2F><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD>װ
|
|||
|
class CMyCriticalSection
|
|||
|
{
|
|||
|
public:
|
|||
|
|
|||
|
CMyCriticalSection()
|
|||
|
{
|
|||
|
InitializeCriticalSection(&m_cSection);
|
|||
|
}
|
|||
|
|
|||
|
void Lock()
|
|||
|
{
|
|||
|
EnterCriticalSection(&m_cSection);
|
|||
|
}
|
|||
|
|
|||
|
void UnLock()
|
|||
|
{
|
|||
|
LeaveCriticalSection(&m_cSection);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
virtual ~CMyCriticalSection()
|
|||
|
{
|
|||
|
DeleteCriticalSection(&m_cSection);
|
|||
|
}
|
|||
|
private:
|
|||
|
CRITICAL_SECTION m_cSection;
|
|||
|
};
|
|||
|
|
|||
|
class CCriticalSectionAutoLock
|
|||
|
{
|
|||
|
public:
|
|||
|
//<2F><><EFBFBD>ù<EFBFBD><C3B9>캯<EFBFBD><ECBAAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD>
|
|||
|
|
|||
|
CCriticalSectionAutoLock(CMyCriticalSection *mySection):pCMySection(mySection)
|
|||
|
{
|
|||
|
pCMySection->Lock();
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뿪<EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD>
|
|||
|
virtual ~CCriticalSectionAutoLock()
|
|||
|
{
|
|||
|
pCMySection->UnLock();
|
|||
|
}
|
|||
|
private:
|
|||
|
CMyCriticalSection *pCMySection;
|
|||
|
};
|
|||
|
|
|||
|
|