我写的一个锁封装类
来源:互联网 发布:微信怎么发圈淘宝店铺 编辑:程序博客网 时间:2024/04/29 07:05
文件 CWin32CriticalSection.h
#pragma once
class CWin32CriticalSection
{
public:
CWin32CriticalSection(CRITICAL_SECTION& csInUse):m_csInUse(csInUse)
{
}
~CWin32CriticalSection()
{
}
__forceinline void EnterInUse()
{
EnterCriticalSection(&m_csInUse);
}
__forceinline void LeaveInUse()
{
LeaveCriticalSection(&m_csInUse);
}
private:
CRITICAL_SECTION& m_csInUse;
};
class CSingleWaitWin32CS
{
public:
CSingleWaitWin32CS(CRITICAL_SECTION& csInUse):cs(csInUse)
{
cs.EnterInUse();
}
~CSingleWaitWin32CS()
{
cs.LeaveInUse();
}
CWin32CriticalSection cs;
};
class CWin32CS
{
public:
CWin32CS(CRITICAL_SECTION& csInUse):cs(csInUse)
{
}
~CWin32CS()
{
}
void Lock()
{
cs.EnterInUse();
}
void UnLock()
{
cs.LeaveInUse();
}
CWin32CriticalSection cs;
};
用法:
class CTest
{
public:
void Init();
void UnInit();
void Do1();
void Do2();
CRITICAL_SECTION m_cs;
};
void CTest::Init()
{
InitializeCriticalSection(&m_cs);
}
void CTest::UnInit()
{
DeleteCriticalSection(&m_cs);
}
void CTest::Do1()
{
CSingleWaitWin32CS cs1(m_cs);
//do some thing
....
....
....
....
}
void CTest::Do2()
{
CWin32CS cs2(m_cs);
cs2.Lock();
//do some thing
....
....
....
....
cs2.UnLock();
}
- 我写的一个锁封装类
- 我写的一个xml文件类,封装了 IXMLDocument(c++builder).
- 我封装的一个XSLT类。
- 我写的一个 C++ 复数类
- 自己写的一个JavaScript 操作XML 封装类
- 示例:在项目中写一个FMDB 的封装类
- 自己写的一个参数封装组件
- 我,一个写代码的
- 我写的一个定时器
- 我,一个写代码的
- 我,一个写代码的
- 我封装的一个ADO类,使用超简单!
- 我写的一个bit操作的类
- 我自己写的一个操作数据库的类
- 我写的一个字符串类,使用到了KMP算法.
- 写一个我自己的文件管理工具类
- 分享一个我写的io序列化类IOPack
- C封装类写的一个DLL,所对应的接口为类的相应接口
- SQL2005中的HTTP端点
- access中相关知识
- ASP和Domino的比较(偶尔编程PK处处编程)
- 练手--用Windows SDK写一个简易时钟
- data mirror
- 我写的一个锁封装类
- 今天的故事
- 邹建的分页存储过程--改了一下
- [实践] 创建具有鼠标和键盘同样控制效果的Flash按钮
- [书籍] Wrox出版社的所有书籍的源代码和勘误信息
- [学习资源] MM中文开发者中心
- 对象数据库(ODBMS) db4o试用(Java version)
- (转贴)C#资源
- 重新再学习C++的练习