4708|7

86

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WINCE中创建线程竟失败?好奇怪,帮帮我! [复制链接]

我在WINCE中会 <<<频繁>>> 使用AfxBeginThread创建工作线程,这个线程没有任何循环,运行完成后会<<安全>>退出,并且在线程中的资源均已释放。

但在某一时刻,使用AfxBeginThread创建线程会返回NULL。就像这样: CWinThread* m_lpThread = AfxBeginThread(MyThread, NULL, 0);

结果是:m_lpThread == NULL;

得出的错误号是8,查了一下为:存储空间不足,无法处理此命令。

这里所说的存储空间是指啥呢?

怎么办啊?大家有没有遇到过呢?我真的很急,知道这儿有很多高手,求大家帮帮我!谢谢!

最新回复

最后检查出是堆和dll动态库占用空间重叠了,导致的出现了错误号为8的错误:存储空间不足,无法处理此命令.谢谢各位!  详情 回复 发表于 2008-5-5 09:14
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
可能你在某一时间同时存在的线程太多了。
导致进程中的空间被消耗完了。

你的“安全”退出可能不安全,你能保证线程中不会有内存泄露或线程crash,或 block。
每个线程建立后最好在某个地方有检查该线程是否真的退出的机制。
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
线程退出有时候会很慢的,如果你没有安全的退出,就会导致系统很慢.检查一下是否存在线程没有退出来.
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

4
 
可能你在某一时间同时存在的线程太多了。
-------------------------------------
谢谢你的回答,但我想应该不会这样,因为我的每个线程工作的时间都不会很长,完成工作后就会立即退出的,没有任何循环,所以不存在“同时存在”的情况。
而且当这次失败了以后,程序也不会死掉,当下次再创建线程的时候,还是可以创建成功的,只是在某一时刻会返回NULL值。

难道真的是存储空间不足吗?如果是,是指内存?以前别人也遇到过这个问题,一直也没解决...
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

5
 
我想即使线程没有退出来,也不会返回NULL啊?
另外,我的工程中有比较耗资源的视频模块,加上它以后就会出这个问题,不加没事儿。但我说的"耗资源的视频模块"我也不知道具体耗的是什么资源。。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

6
 
“完成工作后就会立即退出的”
就算是这样的线程在重复建立时也需要检查一下上一个线程有没有退出,如果没有退出则强行终止。
这个是一种安全机制。

还有确保线程资源释放。可以使用_finaly 等机制来保证。

还有线程是否会用到共享资源?如果有,加入同步机制。

多线程的安全是靠多种安全机制来保证的,不是自己觉得线程内部处理很简单就会安全的。

如果你加入安全检查和同步后,还是有问题,

那么只能把线程的代码贴出来了。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

7
 
我也想了解,谢谢LZ.
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

8
 
最后检查出是堆和dll动态库占用空间重叠了,导致的出现了错误号为8的错误:存储空间不足,无法处理此命令.谢谢各位!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表