内存占100%,怎么解决
我从数组里取出数据,不停的把数据在窗体上绘成波形
用了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




