Win32下两种用于C++的线程同步类(上)
|
日期:2007年8月16日 作者: 查看:[大字体
中字体 小字体]
|
总结一下,要使用InstanceLock系列类,要做的就是:
1、让被锁类从InstanceLockBase继承
2、所有要访问被锁对象的代码前面声明InstanceLock的实例,并传入被锁对象的指针。
附:完整源代码:
#pragma once #include < windows.h >
class InstanceLock;
class InstanceLockBase ... { friend class InstanceLock;
CRITICAL_SECTION cs;
void Lock() ... { ::EnterCriticalSection( & cs); }
void Unlock() ... { ::LeaveCriticalSection( & cs); }
protected : InstanceLockBase() ... { ::InitializeCriticalSection( & cs); }
~ InstanceLockBase() ... { ::DeleteCriticalSection( & cs); } } ;
class InstanceLock ... { InstanceLockBase * _pObj; public : InstanceLock(InstanceLockBase * pObj) ... { _pObj = pObj; if (NULL != _pObj) _pObj -> Lock(); }
~ InstanceLock() ... { if (NULL != _pObj) _pObj -> Unlock(); } } ; (出处:清风网络学院)
上一篇:显示消息框的程序
下一篇:C++启蒙教程之教你编写简单的C++程序
|
| Win32下两种用于C++的线程同步类(上) 相关文章: |
|
|
|
| Win32下两种用于C++的线程同步类(上) 相关软件: |
|
|
|