如何在行完成执行之前阻止?
我的代码从两个串行端口读取,并将两者的输出写入单个控制台。想法是写入第一个串行端口的所有输出,然后写入第二个串行端口的所有输出。在第一次写入控制台之前,如何阻止第二次写入控制台?
睡眠不起作用。它所做的只是写第一个putData的第一个字符,等待1秒,并将第一个串口的其余部分与第二个串口输出混合。
以下是相关方法:
void MainWindow::readData()
{
QByteArray data = serial->readAll();
console->putData(data);
Sleep(1000); //This does not work.
QByteArray data2 = serial2->readAll();
console->putData(data2);
}
[Win 7,Qt 5.0,Qt Creator]。
答案 0 :(得分:2)
我不明白为什么readAll()给你单个字符而不是整个消息,但你可以试试这样的东西:
void MainWindow::readData()
{
QByteArray data = serial->readAll();
console->putData(data);
if(data.isEmpty())
{
QByteArray data2 = serial2->readAll();
console->putData(data2);
}
}