qt 线程选项

Posted

技术标签:

【中文标题】qt 线程选项【英文标题】:qt thread options 【发布时间】:2012-02-01 18:26:57 【问题描述】:

我目前正在编写一个程序,该程序具有在后台散列多个文件的功能。我已经多次阅读 Qt4 文档,但我仍然无法确定哪种线程选项最适合。

http://doc.qt.io/qt-5/thread-basics.html

当每个文件完成后,真的不需要更新 GUI,我只是不想阻塞 GUI,我真的只需要一个单一的信号/插槽连接。我正在考虑为散列线程扩展 QThread。这听起来合理/正确吗?

【问题讨论】:

【参考方案1】:

我已将this article 添加为书签,因为它很好地说明了 QThread 的使用并突出了一些常见的误解。提供示例代码,运行时不会阻塞 GUI。 Sample 托管在 RapidShare 上,但自从我上次使用以来,他们似乎已经实施了某种定时等待期。

【讨论】:

【参考方案2】:

这听起来像是使用 QtConcurrent::map() 函数的好地方。 map 函数可以将相同的操作应用于对象容器,在您的情况下是文件。启动 map 函数后,您可以创建一个 QFutureWatcher 并连接到其完成的信号,以便在所有工作完成时收到通知。

【讨论】:

以上是关于qt 线程选项的主要内容,如果未能解决你的问题,请参考以下文章

QT 多线程程序设计(也有不少例子)

如何使用Qt和C ++的“接口类”来传递两个线程

Qt - 一个简单的回显服务器

运行方法时更新 qt gui

同步主线程和工作线程

qt子线程如何传输数据给主线程