张志松
记录工作点滴,留下人生轨迹。(zezese@163.com)
posts - 68,  comments - 11,  trackbacks - 0
MSDN:

If a thread calls LeaveCriticalSection when it does not have ownership of the specified critical section object, an error occurs that may cause another thread using EnterCriticalSection to wait indefinitely.


比如在MFC中使用

CCriticalSection m_MyCriticalSection; // 模块级变量


在某个函数中:

CSingleLock lock(&m_MyCriticalSection, TRUE);

//使用下面这行代码提前解除锁定,将会导致死锁,
//因为CSingleLock 的虚构函数还会调用一次m_MyCriticalSection.Unlock()

//m_MyCriticalSection.Unlock();

//要使用下面这行代码代替,因为这样CSingleLock 的虚构函数不会再调用m_MyCriticalSection.Unlock()
lock.Unlock();
posted on 2011-02-14 13:47 张志松 阅读(4031) 评论(0)  编辑 收藏 引用 所属分类: VC/MFC

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2010年12月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

转载

搜索

  •  

最新评论

阅读排行榜

评论排行榜