waitforsingleobject的一点点事情
来源:互联网 发布:川普的滑稽知乎 编辑:程序博客网 时间:2024/05/30 19:32
前几天,在写上位机代码的过程中,遇到了这样一个问题,当程序退出时,出现了卡死的现象。
刚开始没有去理会,但是当程序打开关闭多次之后,就有点不耐烦了,于是,debug一步步找出卡死原因。
跟上位机接口对接的是用VT,我不了解VT,以前也没用过VT,只是知道一点点应用,其中就有一个叫BB的东西,他是跟下位机对接的主要模块,说白了也就是windows上的一个DLL。于是,调试就从这个DLL的stop函数入手。
在stop()里面,调用了release(),在release里面实现了设备的关闭和内存的释放,两者都是在一个类里面实现,于是就进入类的析构,在类的析构里面,发现了一句waitforsingleobject(handle,INFINITE),程序就卡死在这里。
由于我不大懂windows编程,也不大懂windows上怎么用线程的,之前都是在linux上编程,于是只能google,终于,答案出来了,waitforsingleobject(handle,infinte)是在不断的等待handle的信号,我这里的handle是一个线程,如果线程不退出,就不会有返回,因为waitforsingleobject是阻塞的,所有程序卡死在那里,不断等待,看起来就是卡死得现象。
到这里,我才突然焕然大悟,原来是我关闭的时候,线程没有退出。之前,在我的记忆里,我只知道,进程关闭,它的线程都会被关闭,但是没有想到居然在主线程上阻塞自己...
解决办法很简单,让那个线程return就行了...
BB是一个很让我惊讶的地方,只要有点内存没释放,就会崩溃,在解决上面的问题后,我还得仔细研究下BB到底崩溃在哪里,所以,又 跟内存耗吧、、、
- waitforsingleobject的一点点事情
- WaitForSingleObject的用法
- WaitForSingleObject的用法
- WaitForSingleObject惹的祸
- WaitForSingleObject的用法
- WaitForSingleObject的用法
- WaitForSingleObject的用法
- WaitForSingleObject函数的使用
- WaitForSingleObject的用法
- WaitForSingleObject的用法(转)
- WaitForSingleObject的用法
- WaitForSingleObject的用法
- 关于WaitForSingleObject的使用
- WaitForSingleObject的用法
- WaitForSingleObject的用法
- WaitForSingleObject的用法
- WaitForSingleObject的用法
- WaitForSingleObject 的讨论
- poj 1195 Mobile phones 二维树状数组
- java reflect小记
- IE7下多个Select互相重叠的解决方法
- jQuery对select操作小结 转载
- 解决WCF URL(过长)最大长度问题
- waitforsingleobject的一点点事情
- 第三篇 android 应用开发模式之MVC模式及Observer模式
- Java基础第十四天学习日记_集合、List集合、Set集合
- ASP环境,百度Ueditor 无法上传附件,提示405错误或者404错误解决办法。
- 附件上传大小受限制 视频上传 dedecms
- 菜鸟列举小例浅谈数据库之------表
- ubuntu使用锐捷认证MentoHUST上网
- Android学习之Handler学习
- 笑嘻嘻笑嘻嘻笑嘻嘻笑嘻嘻笑嘻嘻笑嘻嘻笑嘻嘻笑嘻嘻笑嘻嘻