JUST DO IT ~

我只想当个程序员

DeleteCriticalSection 出错 can not read ... windows 32 vs2010

发生在析够函数中,   vs2010 debug 模式 .

CriticalSection::~CriticalSection(void){
    DeleteCriticalSection(&m_CritSect); 
}

 

我开始推测,必须退出section才能delete ?

    InitializeCriticalSection(&m_CritSect);  
      EnterCriticalSection(&m_CritSect); 
    DeleteCriticalSection(&m_CritSect);   
  实际上这样退出是可以的.

 

问题在哪里? 

一个回调处理函数类注册到另外一个线程里面.另外一个线程一直有消息推送或者调用其内部函数.

 

~主类(){

       aa->release(); //之前没有这句话 ,内部aa 线程一直在运行 ,可能是排在析构 (DeleteCriticalSection)之后或者之前,损坏了这个变量 m_CritSect

}

这里开始调用  DeleteCriticalSection(&m_CritSect);   并且报错了.

posted on 2013-09-10 13:28 小高 阅读(461) 评论(0)  编辑  收藏 所属分类: C


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2013年9月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

统计

常用链接

留言簿(3)

随笔分类(352)

收藏夹(19)

关注的blog

手册

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜