由于监控下位机有个心跳数据需要取,所以每一秒发一条命令然后受到状态更新界面上一个CStatic。
现在,MFC程序刚刚启动时还好,资源管理器显示平均CPU占有1.2左右;
不过,啥也不干,就那么放着,一个小时左右后整个电脑都开始卡,这时显示平均CPU占用5左右。到后来,干脆整个程序界面都卡死了,就是Ctrl+Tab回不来了。但是至少后台在打印txt日志的行程还在运行。
从资源管理器来看,平均%5的CPU也不是很夸张啊,但为啥就界面卡死了呢?
而且刚刚运行的时候不是很卡,时间久了就卡了,是啥东西比如句柄用完了没释放导致的吗?
你可能用的是USB转串口的设备,如果是PL-2303芯片的,没解决方法,只能关机后再重新启动机器,运行程序;如果是FT232,CH340,CP2101芯片的不存在上述问题。建议你尽量不要使用PL-2303芯片的转换器
几个办法:1·线程技术,使用分线程做导入;
2·消息模式分段导入,每个消息只导入一部分数据,完成后,发送消息的模式导入第二部分;
3·伪导入。即当大量数据不是经常使用或者当前不使用的时候,只智能导入需要部分数据,这是大规模程序必要的优化设计;
4·IDLE模式分段导入。在导入过程中分段,并在每个分段直接加入OnIdle()函数,可以缓解假死现象,这个不推荐使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)