写的MFC程序运行50分钟后不会刷新图像了

chenchengnet 2010-07-16 10:32:04
各位大侠,

我写了一个MFC程序,在BUtton按下后,启动一个线程,这个线程不断从数组接收图像数据,形成TDIBitmap。而后在该线程中调用StretchDIBits()函数将TDIBitmap显示在ImageBox上。

线程正常运行50分钟后,就不再刷新新拍摄到的图片了,这是为什么??数组当中有不断更新的新的图片数据的。这时将显示窗口关闭,线程还在正常运行,重新打开显示窗口后,新的图像数据就显示在屏幕上了。


那位大仙知道这是什么原因么??
...全文
122 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlueMap 2010-07-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 chenchengnet 的回复:]

不是资源没有释放,内存也没有增加啊。就是运行了50分钟后,不刷新图了。
[/Quote]
注意CDC也是资源,也是有数量限制的,用完要释放的。。。getdc后要releasedc,看看你每次都释放了没有。。。
BlueMap 2010-07-18
  • 打赏
  • 举报
回复
1、可能是算法设计时有不足的地方,导致设备环境(CDC)变了,导致画图没画对地方,或根本没有画。
2、你确定线程没有“睡觉”?你没有停止或让他sleep时间变长?
chenchengnet 2010-07-18
  • 打赏
  • 举报
回复
不是资源没有释放,内存也没有增加啊。就是运行了50分钟后,不刷新图了。
chenchengnet 2010-07-18
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 bluemap 的回复:]
引用 10 楼 chenchengnet 的回复:

不是资源没有释放,内存也没有增加啊。就是运行了50分钟后,不刷新图了。

注意CDC也是资源,也是有数量限制的,用完要释放的。。。getdc后要releasedc,看看你每次都释放了没有。。。
[/Quote]

是的,是的。谢谢了
fzaifei 2010-07-18
  • 打赏
  • 举报
回复
到Windows任务管理器里面看看 内存使用、句柄数、GDI对象这些,看看哪个在程序运行期间不停增加。
雪域迷影 2010-07-17
  • 打赏
  • 举报
回复


ccccccccccccc
wltg2001 2010-07-17
  • 打赏
  • 举报
回复
检查一下是不是GDI资源没有释放
liaolingfen4 2010-07-17
  • 打赏
  • 举报
回复
同上。。。用了要记得释放。。。申请了也是。。

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://feiyun0112.cnblogs.com/
用户 昵称 2010-07-17
  • 打赏
  • 举报
回复
可能是因为没有释放资源。
jingyuge 2010-07-17
  • 打赏
  • 举报
回复
估计是忘释放了,资源耗光了
lyvvv 2010-07-16
  • 打赏
  • 举报
回复


CBrush brush1; // Must initialize!
brush1.CreateSolidBrush(RGB(0,0,255)); // Blue brush.

CBrush* pTempBrush = (CBrush*)pDC->SelectObject(brush1);

// 你的代码

pDC->SelectObject(&OrigBrush); //一定要加上这句,CPen CBrush CFont...都需要添加

fishion 2010-07-16
  • 打赏
  • 举报
回复
不要总喜欢在线程里绘图吧
ameyume 2010-07-16
  • 打赏
  • 举报
回复
不懂,帮顶。
瞎猜一下:是不是图像太多了,导致只显示最后一张不刷新了,还是线程挂起了?
chenchengnet 2010-07-16
  • 打赏
  • 举报
回复
小弟在这里先谢过了

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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