baiyin 2015-06-02 07:31 采纳率: 0%
浏览 5058

程序运行一段时间后,界面不刷新 mfc

用vc2008做的程序,在自建的线程里,处理蓝牙虚拟串口通信的接收数据和实时显示!
发现程序跑40分钟左右后,界面变灰!但程序没死,数据通信显示正常。其他控件就没了。移动鼠标可以看到,也可以操作!感觉就是主界面不重绘了!如图:
图片说明
程序运行时看任务管理器的内存,也不大!应该不是内存泄漏的问题
找不出原因了!网上用PeekMessage的方法试了,还是没用!谁能帮忙给个解答!
这个线程机制以前用串口通信和usb虚拟串口通信都是正常的,没出现过这个问题!
线程代码如下:
//接收数据监测线程
UINT CBluetoothScaleDlg::CommThread(LPVOID pParam)
{
//线程函数

CBluetoothScaleDlg pDlg = (CBluetoothScaleDlg)pParam;

//连续稳定计数
pDlg->icount=0;
while(true)
{       
    //start-计算时间
    CTime StartTime,EndTime;
    CTimeSpan ebTime(0,0,0,0);
    StartTime=CTime::GetCurrentTime();

    //com通信
    pDlg->ReadDataAndDisplay();

    //end
    EndTime=CTime::GetCurrentTime();
    ebTime=EndTime-StartTime;          
    if(ebTime.GetSeconds()>3)//无信号判断?
    {
        pDlg->m_ReceiveData="无信号";

        pDlg->SetDlgItemText(IDC_EDIT_ReceivedData_Hex,pDlg->m_ReceiveData);
        //所有指示灯关闭
        //pDlg->m_ctrlIconLight.SetIcon(pDlg->m_hIconNo);                  
     }        

    Sleep(100);
}
return 0;

}

  • 写回答

5条回答

  • oyljerry 2015-06-02 08:11
    关注

    在对话框OnPaint中添加你的控件重绘等
    除了内存泄漏,其次查看一下进程的GDI,是否有泄漏

    评论

报告相同问题?

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误