我目前正在编写一个程序,它具有在后台散列大量文件的功能。我已多次阅读Qt4文档,但仍然无法确定哪种线程选项最适合。
http://doc.qt.io/qt-5/thread-basics.html
当完成每个文件时,真的没有必要更新GUI,我只是不想阻止GUI,我完全只需要一个信号/插槽连接。我正在考虑将QThread扩展为散列线程。这听起来合理/对吗?
答案 0 :(得分:3)
这听起来像是一个使用QtConcurrent :: map()函数的好地方。 map函数可以将相同的操作应用于对象容器(在您的情况下为文件)。启动map功能后,您可以创建一个QFutureWatcher并连接到已完成的信号,以便在完成所有工作后收到通知。
答案 1 :(得分:3)
我有this article个书签,因为它很好地说明了QThread的使用,并突出了一些常见的误解。可用的示例代码,在不阻止GUI的情况下运行。样本托管在RapidShare上,但自从我上次使用以来,它们似乎已经实现了某种等待时间。