CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

内存占100%,怎么解决

楼主FlySkyFree(飞)2006-12-01 11:45:20 在 C++ Builder / 基础类 提问

我从数组里取出数据,不停的把数据在窗体上绘成波形  
  用了while(1)不停的循环,这样内存就达到了100%,不知道怎么解决? 问题点数:100、回复次数:18Top

1 楼shencyx(终有一天变成牛人..)回复于 2006-12-01 12:49:12 得分 0

用了while(1)不停的循环,这样内存就达到了100%,不知道怎么解决?  
      没得解决...Top

2 楼winner8080(志在云天)回复于 2006-12-01 12:54:57 得分 0

当然没得解决,死循环啊  
  要在循环里设个退出条件  
  break;Top

3 楼cczlp(不惑)回复于 2006-12-01 13:06:31 得分 50

while(1)  
  {  
  ....  
  Sleep(10);   //这个值越大CPU占用越少  
  }Top

4 楼xjflyttp(疯子nOvEr)回复于 2006-12-01 13:53:10 得分 0

主  题:   内存占100%,怎么解决  
   
   
  内存100%你怎么还不死机...........Top

5 楼vc8fans()回复于 2006-12-01 14:10:23 得分 10

搞个线程代替while(1){}绘图时再向窗口发送消息就好了Top

6 楼FlySkyFree(飞)回复于 2006-12-01 14:26:07 得分 0

vc8fans()   ,请问怎么样向窗口发送消息?Top

7 楼wood542344(人生就是比当归大条)回复于 2006-12-01 14:59:16 得分 10

SendMessage();看一下帮助吧。有说的。  
  最好还是另外分一个线程出来做这个事情。而且在while(1)里也要有一个一定可以运行到的break语句。Top

8 楼scsjs(闪电回归)回复于 2006-12-01 17:07:04 得分 10

while(1)不好,  
   
  你可以试试计时器。或者开一个线程处理。  
  Top

9 楼FlySkyFree(飞)回复于 2006-12-02 08:53:05 得分 0

我做了个线程,用了while(!Terminated),还是占到100%,用了cczlp(不惑)   的方法的确不是100%了,不知道为什么?Top

10 楼lother(阿艺)回复于 2006-12-02 09:19:37 得分 0

你这样调用线程,线程也在死循环.while(!Terminated)  
  方法:  
  No.1  
  去掉while循环.接受到画图指令只画一次.<间隔一定时间发画图指令>  
  No.2  
  用定时器每隔50ms画图一次Top

11 楼cczlp(不惑)回复于 2006-12-02 11:47:57 得分 0

Sleep是把时间让给其它线程,CPU占用自然降低了。  
   
  最好先在内存中绘图,最后再贴到窗体上。Top

12 楼MultiThread_begin(pp)回复于 2006-12-02 12:33:09 得分 0

mark  
  Top

13 楼i_love_pc(杰子)(欢迎加入技术交流QQ群:23640432)回复于 2006-12-02 12:43:22 得分 0

不停的把数据在窗体上绘成波形  
  ============================  
   
  用离散的短时间间隔代替死循环.Top

14 楼Yans(跟贴是一种友谊)回复于 2006-12-02 14:40:00 得分 0

Sleep(10);Top

15 楼FlySkyFree(飞)回复于 2006-12-04 08:57:23 得分 0

cczlp(不惑)最好先在内存中绘图,最后再贴到窗体上.能详细说说怎么做吗?  
  还有我在线程里直接在Execute实现在窗体上画图,有时出现错误“Canvas   does   not   allow   drawing”,不知道怎么回事?是不是不能在Execute里直接对别的窗体上画图?Top

16 楼wangxintu(Jessie)回复于 2006-12-04 09:12:18 得分 10

1、应该是CPU占用率100%吧?内在占用率100%还能运行不可能吧?  
  2、开个线程,在线程中也要sleep,要是线程不会就用定时器也可以;  
  3、cczlp(不惑)说的方法是不错;Top

17 楼BenLeak(摇摆人)回复于 2006-12-04 09:40:15 得分 10

画图是很耗时间的(相对于一般计算),不要在线程中画图  
   
  在线程中处理,发送消息到主线程画图  
  线程中使用   Sleep(0);   都会使   CPU   不占用   100%的Top

18 楼FlySkyFree(飞)回复于 2006-12-04 10:30:06 得分 0

发送消息到主线程,还不知道怎么做,请帮忙Top

相关问题

关键词

得分解答快速导航

  • 帖主:FlySkyFree
  • cczlp
  • vc8fans
  • wood542344
  • scsjs
  • wangxintu
  • BenLeak

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo