Qt4:如何在线程间传输mysql查询



我的应用程序读取mysql数据库并根据mysql查询绘制表。我想使用进度条,但我不能,因为QSqlDatabase进程冻结了我的主窗口。

我在某个地方读到,我应该分开gui和mysql进程的线程,并使用进程间通信,但找不到任何例子。在线程之间传输mysql查询的最佳方式是什么?

有两种方法可以防止GUI冻结:

  • 将计算及时卸载到工作线程并进行通信

  • 请求你的GUI线程处理它的一些挂起的消息事件循环。

我建议选择第二个选项,因为它很快,通常解决这类问题。但是请记住,这并不是一种干净的方法,应该把要求很高的计算从主GUI线程中挤出来。

第二种解决方案涉及在查询消费循环的某个地方放置单个函数调用。一般模式是:

While(query.next()){
    ...
    QApplication::processEvents();
    ...
}

相关内容

  • 没有找到相关文章

最新更新