/*******************************************************************
* Copyright(c) 2000-2030
* All rights reserved.
*
* 文件名称: CLock.h
* 简要描述: 创建锁对象的
*
* 创建日期: 2016/05/16
* 作者: xiaoge
* 说明:
*
* 修改记录:
******************************************************************/
#pragma once
#ifndef __LOCK_H__
#define __LOCK_H__
#include <windows.h>
#define SPINCOUNT_NUM 4000
class CCriticalSection
{
public:
CCriticalSection()
{
InitializeCriticalSectionAndSpinCount(&m_crtLock, SPINCOUNT_NUM);
}
~CCriticalSection()
{
LeaveCriticalSection(&m_crtLock);
}
void Lock()
{
EnterCriticalSection(&m_crtLock);
}
void UnLock()
{
LeaveCriticalSection(&m_crtLock);
}
protected:
private:
CRITICAL_SECTION m_crtLock;
};
class CLock
{
public:
explicit CLock(CCriticalSection &csLock) :
m_csLock(csLock)
{
m_csLock.Lock();
}
~CLock()
{
m_csLock.UnLock();
}
protected:
CLock operator=(CLock&);
private:
CCriticalSection &m_csLock;
};
#endif
* Copyright(c) 2000-2030
* All rights reserved.
*
* 文件名称: CLock.h
* 简要描述: 创建锁对象的
*
* 创建日期: 2016/05/16
* 作者: xiaoge
* 说明:
*
* 修改记录:
******************************************************************/
#pragma once
#ifndef __LOCK_H__
#define __LOCK_H__
#include <windows.h>
#define SPINCOUNT_NUM 4000
class CCriticalSection
{
public:
CCriticalSection()
{
InitializeCriticalSectionAndSpinCount(&m_crtLock, SPINCOUNT_NUM);
}
~CCriticalSection()
{
LeaveCriticalSection(&m_crtLock);
}
void Lock()
{
EnterCriticalSection(&m_crtLock);
}
void UnLock()
{
LeaveCriticalSection(&m_crtLock);
}
protected:
private:
CRITICAL_SECTION m_crtLock;
};
class CLock
{
public:
explicit CLock(CCriticalSection &csLock) :
m_csLock(csLock)
{
m_csLock.Lock();
}
~CLock()
{
m_csLock.UnLock();
}
protected:
CLock operator=(CLock&);
private:
CCriticalSection &m_csLock;
};
#endif