您的位置:首页 > 编程语言

通过关键代码段实现的一个互斥锁CLock

2016-08-09 09:30 141 查看
/******************************************************************* 

 *  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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐