MFC CSyncObject,CSingleLock,CMultiLock同步类
其实,关于同步,主要想讲的是 CSingleLock 类。
由于 CSingleLock 是个全局类,没父类,没子类,从下面的关系图中可以看出。
于是,我们就转向了将 CSingleLock 作为友元函数的 CSyncObject 类。
这样,CSingleLock 就共享到了 CSyncObject 里面的对象了。
所以,我们对这些逐一介绍,以获得 CSingleLock 的理解。
一、同步类在MFC中的位置状况:
CObject>>CMultiLock
在这里我们可以看到,后面四类貌似很熟悉吧,是的,它们就是前面提到的线程的同步对象。
二、CSyncObject
三、CSingleLock
CSingleLock singleLock(&m_CritSetion);//创建一个CSingleLock对象
singleLock.Lock();//试图获得共享资源
if(singleLock.IsLocked()) //判断共享资源是否被锁定
{……}
singleLock.UnLock(); //解锁共享资源。其实有两个解锁函数,有无参数的区别,后面讲。
CEvent event1,event2,event3; //声明3个事件
CSingleLock *eventObject[]={ &event1 , &event2 , &event3};
CMultiLock lock (eventObject,3);
lock.Lock();
//动作
lock.Unlock();
MFC CSingleLock CMultiLock CSyncObject
上一篇:如何利用VS定位程序崩溃的源码行
下一篇:CSingleLock类介绍