社区
C++ Builder
帖子详情
为什么我的程序一运行,CPU就使用100%?
favorit
2002-10-24 07:30:13
在程序里用了一个线程,结果这个线程导致CPU的百分之百使用,简直是一个病毒呀!:(
不知是什么地方不对,肯定代码有问题,请各位大虾指教一二了!
...全文
228
19
打赏
收藏
为什么我的程序一运行,CPU就使用100%?
在程序里用了一个线程,结果这个线程导致CPU的百分之百使用,简直是一个病毒呀!:( 不知是什么地方不对,肯定代码有问题,请各位大虾指教一二了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bcb_fans
2002-10-25
打赏
举报
回复
怪了,SDK不是有定义吗?
typedef struct _OVERLAPPED { // o
DWORD Internal;
DWORD InternalHigh;
DWORD Offset;
DWORD OffsetHigh;
HANDLE hEvent;
} OVERLAPPED;
favorit
2002-10-25
打赏
举报
回复
BCB_FANS说:
使用异方式
ReadData()
{
.........
ReadFile(........Overlap,...)
GetOverlappedResul(....);这里将一直等到读数据
.....
}
不过那个Overlap的结构到底是什么?需要自己对它定义吗?
cdws222
2002-10-25
打赏
举报
回复
你加一个Application->ProcessMessages();可能就没事了
favorit
2002-10-25
打赏
举报
回复
我是指用的时候是不是直接引用Overlap就可以了?:)
bcb_fans
2002-10-24
打赏
举报
回复
Faint!!!
谁说我写错了???
那是四大名捕之追杀令之第1招,叫做“网络生存之踏网无痕”,保证让大多数E-Mail搜索机完全失效!?!?!不用再害怕受到垃圾邮件地骚妖了:)
favorit
2002-10-24
打赏
举报
回复
To: BCB_FANS(四大名捕之追杀令)
不要被cker老大挂念,就那么激动呀!激动地连mail地址都写错了:)
我已经发了!不过估计你看后会faint掉的
bcb_fans
2002-10-24
打赏
举报
回复
To : cker
多谢老大挂念,小弟深感荣幸!!!:)
现在是 favorit(因你飞扬) 在追杀我,而不是我在追杀他!^_^。
我的E-Mail:slwqw#163.com 。
favorit
2002-10-24
打赏
举报
回复
BCB_FANS:不知道你的mail地址:(
favorit
2002-10-24
打赏
举报
回复
受宠若惊!出现了这么多老大!!
烟波三千里人鬼五百年
2002-10-24
打赏
举报
回复
嗬嗬,有 四大名捕追杀你。我就不出现了.....:)
BCB_FANS 多日不见,近日可好?
bcb_fans
2002-10-24
打赏
举报
回复
好吧,发过来!
NowCan
2002-10-24
打赏
举报
回复
这肯定是100%
如果不是什么紧急任务,改成下面的就可以。
while(! Terminated )
{
//如果数据不是一直都有,通常采用事件触发的方式,比如网络编程常用的OnRead、OnWrite等。而不是一直不停的自己去检测,这样效率是最低的!
::Sleep(1);
Synchronize(ReadData);
}
favorit
2002-10-24
打赏
举报
回复
ReadData()实在太长,而且有些地方看了好像意义不大,我给你mail过去吧
bcb_fans
2002-10-24
打赏
举报
回复
从代码来看,这个线程在不停的循环读取数据,肯定占用时间了,不知道那个ReadData怎么回事?
while(! Terminated )
{
//如果数据不是一直都有,通常采用事件触发的方式,比如网络编程常用的OnRead、OnWrite等。而不是一直不停的自己去检测,这样效率是最低的!
Synchronize(ReadData);
}
favorit
2002-10-24
打赏
举报
回复
To:BCB_FANS(四大名捕之追杀令)
老兄,贴出来了我认为有问题的那一部分,我不知道你要看哪部分,干脆我mail过去算了,呵呵
favorit
2002-10-24
打赏
举报
回复
不会吧?我的执行:
void __fastcall TReadThread::Execute()
{
while (! Terminated ) Synchronize(ReadData);
}
void __fastcall TReadThread::ReadData()是一个读取线程的执行动作。
是不是因为这个线程一直在执行?怎样让线程不读取数据时,把CPU还给系统?
本来以前有一个这个贴子的,结果现在打不开了:(
bcb_fans
2002-10-24
打赏
举报
回复
你自己都“肯定代码有问题”了,却又不把代码贴出来,你让人家怎么帮你吗?:)
westfly
2002-10-24
打赏
举报
回复
死循环了吧?
favorit
2002-10-24
打赏
举报
回复
Faint!
2002年10月24日20:23,论坛在线名单(671人)
怪不得我的问题没有人回答:(
代码
运行
时
CPU
占用率
100
%的解决方法
为什么
运行
代码时,
CPU
占用率用率
100
%?
CPU
占用率
100
%,怎么办?
揭秘win10系统
CPU
占用
100
%的真正原因/找出那些罪魁祸首
经常会有Win10用户反应,电脑没有
运行
太多
程序
,但是在任务管理器中,经常可以看到电脑
CPU
占用率却一直居高不下。那么,
CPU
占用
100
%的正真原因是什么呢?下面小编收集了一些针对
CPU
占用过高的原因及解决办法,这些...
Java 进程
CPU
占用率
100
% 问题
线程的
运行
时间由
cpu
决定,
cpu
分给每个线程一个时间片,如果在时间片内,线程一直占有,则是
100
%; 3.java 进程中
CPU
占用率
100
%的常见场景 死循环; 大量Full GC; 耗时过太长的计算; 大量
图解
CPU
飙升到
100
% 的 9 大原因
公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !排查系统问题时,
CPU
飙升是一个常见的...当
程序
中的循环缺乏正确的退出条件或条件从未满足时,就会出现这种情况,导致循环无休止地
运行
,消耗...
Linux下解决
CPU
占用率
100
%问题的步骤
CPU
占用率
100
%问题的解决步骤1. 确定
cpu
占用率高的进行ID - PID2. 查看进程中
cpu
占用率高的线程ID - TID3. 将线程ID - TID 转换成16进制 - XTID4. 将进程中的所有线程输出到文件5. 在输出文件中查找对应的线程ID ...
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章