上位机与下位机程序配合是 下位机程序崩溃

在测试QT编写的上位机与下位机程序时,发现下位机在连续下载操作后崩溃。问题源于下位机线程未结束时,上位机已清除内容。原代码使用`terminate()`强制退出线程,导致程序不稳定。解决方案包括优化上位机下载逻辑,确保未成功下载时不允许再次点击,并对下位机线程进行更安全的停止处理。
摘要由CSDN通过智能技术生成

   最近作为一个菜鸟,一直测试同事用QT写好的上位机与下位机程序, 结果配置一个模块,连续点击多次下载时,下位机出现程序崩溃的情况。如图


根据提示得知


在下位机线程没有结束的时候,我通过上位机就把内容情况了。 下位机线程继续运行的时候,程序就崩了。

下位机程序处理:

  //串口线程停止,释放内存
    for(int i=0; i<SERIAL_PORT_NUM; i++)
    {
        if(m_serialThread[i]->isRunning())
        {
            m_serialThread[i]->ControlRun(false);
//m_serialThread[i]->wait(3000);      更改之前的内容
//m_serialThread[i]->quit();   更改之前的内容
m_serialThread[i]->terminate();   更改加的一句话   强行退出。
        }
        m_serialThread[i]->ClearSerial();
    }



上位机处理,在下载未成功的时候不允许继续点击下载。

...

  QDataStream out(&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值