【发布时间】:2014-05-07 07:20:05
【问题描述】:
我必须通过串口发送文件,所以我使用了一个单独的线程,名为serialWorker。
在主线程中我有这个:
ui->progressBar->setMaximum(file.size());
QTextStream in(&file);
while(!in.atEnd()){
serialWorker.send(line);
ui->progressBar->setValue(in.pos());
}
问题是进度条不是“实时的”,即由于serialWorker没有阻塞主线程,循环运行无需等待。我应该如何更好地解决这个问题?
【问题讨论】:
-
什么是serialWorker?
-
管理连接的线程。
-
你不能检测到,当这个线程完成并且你的行被处理了吗?它发出信号还是退出?如果是,那么当线程或行处理完成时,您可以增加进度条。
-
好的,我想我可以在我发送完一行时发出一个信号。
标签: c++ multithreading qt progress-bar