【线程创建失败】AfxBeginThread --GetLastError 返回8

-小仙- 2011-07-19 05:30:04
这个代码也没有什么好贴的! 只需要介绍些程序结构应该可以理解。

结构是:
exe程序加载一个dll,线程就是在dll中的某一处创建的,用得是AfxBeginThread, 大多数情况下没有问题,可以成功创建,
但有的时候就会创建失败,GetLastError得到的值是8,,8=“存储空间不足,无法处理此命令。”!


这里有个帖子说的是因为:
“最后检查出是堆和dll动态库占用空间重叠了,导致的出现了错误号为8的错误:存储空间不足,无法处理此命令 ”
http://bbs.eeworld.com.cn/archiver/tid-137011.html

这个怎么理解 和去处理?


这个问题困扰了很久了,发出来讨论下!

...全文
491 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxq123321 2011-07-27
  • 打赏
  • 举报
回复
首先,线程创建失败绝大多数情况是代码问题,如果是系统问题导致的线程创建失败,此时你的系统明显已经到了接近崩溃的边缘了,重试也是徒劳,所以分析问题时不要先入为主是认为受系统影响。
-小仙- 2011-07-21
  • 打赏
  • 举报
回复
如果我点击一个按钮就创建一个线程然后保证线程安全退出。

这样的线程过程算不算频繁和合理呢 !

Ei 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 trueman_onlyme 的回复:]
是自己的疏忽 程序里面一共有5个线程,其中有两个线程没有在终止,可能是发生内存泄露了!

现在还在调式.

因为线程承载的大多数是具有较大工作量的任务,所以怎么做能保证运行时出错,不会导致程序出致命错误而退出!

扑捉异常的方法可行不:
__try
{
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
}
[/Quote]
楼主可以看看 windows seh 结构异常处理。
-小仙- 2011-07-20
  • 打赏
  • 举报
回复
是自己的疏忽 程序里面一共有5个线程,其中有两个线程没有在终止,可能是发生内存泄露了!

现在还在调式.

因为线程承载的大多数是具有较大工作量的任务,所以怎么做能保证运行时出错,不会导致程序出致命错误而退出!

扑捉异常的方法可行不:
__try
{
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
}


clown 2011-07-20
  • 打赏
  • 举报
回复
异常处理 调试运行
Eleven 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 trueman_onlyme 的回复:]

引用 4 楼 visualeleven 的回复:

你的程序是不是有内存泄露啊~


确实有内存泄露! 问题逐渐明了了
[/Quote]
还是先找到泄露的代码吧~
-小仙- 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 visualeleven 的回复:]

你的程序是不是有内存泄露啊~
[/Quote]

确实有内存泄露! 问题逐渐明了了
-小仙- 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 oyljerry 的回复:]

难道你的程序需要很多内存?还是线程开辟很频繁,可以检查一下这些地方
[/Quote]

我有一个线程是在对话框打开的时候创建 ----有时会创建失败

有一个线程是在点击一个按钮的时候创建----有时候也会创建失败

这样算频繁吗?


如何检查 、调试、修改呢?
-小仙- 2011-07-20
  • 打赏
  • 举报
回复
结构化异常处理机制 SEH 不是那么容易就能很好掌握的
Eleven 2011-07-19
  • 打赏
  • 举报
回复
你的程序是不是有内存泄露啊~
oyljerry 2011-07-19
  • 打赏
  • 举报
回复
难道你的程序需要很多内存?还是线程开辟很频繁,可以检查一下这些地方
-小仙- 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 oyljerry 的回复:]

当出现这个错误的时候,捕获一下,然后重新尝试创建是否可以成功.
[/Quote]

您指的是 如果创建失败了 ,就继续在创建一次 看是否能成功?

现在的程序中 并没有做这样的处理,但是当出现这样的情况时,再次通过界面控件调用创建代码时就一直有问题,
只能重新启动程序!
oyljerry 2011-07-19
  • 打赏
  • 举报
回复
当出现这个错误的时候,捕获一下,然后重新尝试创建是否可以成功.

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧