WaitForSingleObject或MsgWaitForMultipleObjects函数无返回,程序直接退出问题
来源:互联网 发布:mac windows双系统切换 编辑:程序博客网 时间:2024/06/05 15:19
异常描述:
用C写的多线程库,用C语言的测试程序测试无异常,但是用C#写的测试程序,测试就异常,测试程序本身没问题,最终找到问题在WaitForSingleObject或MsgWaitForMultipleObjects函数无返回,程序直接异常退出。但WaitForSingleObject或MsgWaitForMultipleObjects函数本身也无异常。
异常原因:
子线程退出时没有完全释放资源,如一些系统自身的全局变量(stdout等)。 如果库和测试程序都是C语言写的在同一环境,用WaitForSingleObject或MsgWaitForMultipleObjects函数等待线程结束无异常。
但是测试程序是C#写的,在库中子线程退出时没有完全释放资源,交接到C#时,环境不一样,没交接干净,有内存泄漏,所以异常退出。
解决方法:
在子线程结束时自己退出线程,用ExitThread(0);释放资源就不会异常了。
表达能力差,描述不是很清楚,也不准确。。。
0 0
- WaitForSingleObject或MsgWaitForMultipleObjects函数无返回,程序直接退出问题
- 等待线程退出 MsgWaitForMultipleObjects和WaitForSingleObject
- 主线程使用WaitForSingleObject和MsgWaitForMultipleObjects等待线程返回值
- WaitForSingleObject和MsgWaitForMultipleObjects
- 两次按返回键 就直接退出程序
- MsgWaitForMultipleObjects函数
- MsgWaitForMultipleObjects函数
- 在用户线程/主线程中推荐MsgWaitForMultipleObjects代替WaitForSingleObject和WaitForMultipleObjects()函数
- 在用户线程/主线程中推荐MsgWaitForMultipleObjects代替WaitForSingleObject和WaitForMultipleObjects()函数
- 用MsgWaitForMultipleObjects代替WaitForSingleObject和WaitForMultipleObjects()
- 双击返回退出程序
- main函数返回1表示程序正常退出
- Android 浏览器直接请求链接有返回数据,但在程序中请求无返回。
- 消息队列msgsnd成功后,函数退出前程序直接退出了????
- 关于Android点击物理返回键退出程序的问题
- 解决两个Fragment间调用addToBackStack()函数,按返回键直接退出的问题(即无法切换回上一个Fragment)
- Back键直接退出程序
- Android在web view下点击返回键直接退出程序完美解决
- 物体导出刚体与mesh的坐标比例保持
- C++头文件重复包含问题分析及解决方案
- 算法导论学习
- JavaSE_01_Helloworld
- 二维数组矩阵查询,输入的第一行为两个整数代表将要输入的矩阵的行数和列数,输入的第二行代表要查找的数字。
- WaitForSingleObject或MsgWaitForMultipleObjects函数无返回,程序直接退出问题
- jsp前台注册检验
- 蔡英文:王金平没必要与马英九会商
- 电话广泛认同和研究员
- 排序之插入排序
- 关于UITableViewCell 自适应内容高度时的注意点
- 434134.12
- Linux内核代码笔记3----进程(未完成)
- 78321697