咱写了个MFC读写串口的程序,但是越来越卡,可能是啥原因

咱写了个MFC读写串口的程序,但是越来越卡,可能是啥原因,第1张

写的都是阻塞的,不过应该影响不大。

由于监控下位机有个心跳数据需要取,所以每一秒发一条命令然后受到状态更新界面上一个CStatic。

现在,MFC程序刚刚启动时还好,资源管理器显示平均CPU占有1.2左右;

不过,啥也不干,就那么放着,一个小时左右后整个电脑都开始卡,这时显示平均CPU占用5左右。到后来,干脆整个程序界面都卡死了,就是Ctrl+Tab回不来了。但是至少后台在打印txt日志的行程还在运行。

从资源管理器来看,平均%5的CPU也不是很夸张啊,但为啥就界面卡死了呢?

而且刚刚运行的时候不是很卡,时间久了就卡了,是啥东西比如句柄用完了没释放导致的吗?

几个办法:

1·线程技术,使用分线程做导入;

2·消息模式分段导入,每个消息只导入一部分数据,完成后,发送消息的模式导入第二部分;

3·伪导入。即当大量数据不是经常使用或者当前不使用的时候,只智能导入需要部分数据,这是大规模程序必要的优化设计;

4·IDLE模式分段导入。在导入过程中分段,并在每个分段直接加入OnIdle()函数,可以缓解假死现象,这个不推荐使用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12201606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存