日志
求助:多线程应用,界面卡死
2019-01-21 19:26
1.描述:
主界面的一个按钮绑定的槽函数里,调用了如下函数。第一个参数是待发送的指令,第二个参数是发送命令后循环等待的毫秒数,我设置为等待60秒。 2.疑问:sendData发送指令后,我开启了子线程等待60秒,来接收指令返回。 为什么开启了子线程,主界面还会卡死?有什么解决办法? 3.代码: QString &Worker::writeAndReadData(const QString&sData,int timeout) { rDataStr.clear(); rData.clear(); sendData(sData+"\r\n"); PVSleep::sleep(300); QFuture<void> future = QtConcurrent::run([&]() { for(int i=0;i<timeout/1000;i++) { if(rData.contains("Rebooting")) { rDataStr = rData; rData.clear(); break; } else PVSleep::sleep(1000); } }); future.waitForFinished(); return rDataStr; } |
下一篇: 求助:Qt::Blockingqueuedconnection 死锁
上一篇: 无