我怎么能等到下一个任务开始?

时间:2015-02-15 17:48:19

标签: c++ multithreading qt

程序处理文件,起初非常小,找到一些结果并创建一个要处理的新文件。一段时间后,文件数量迅速增加。

我想使用QThreadPool处理所有文件。有人可以建议我应该如何制作或修正我的想法吗?

我决定在QThread中处理每个文件,并发送结果和带有信号的新作业。此外,在run()函数的末尾,它会发出与插槽taskDone连接的信号startNewTask,如果有要处理的文件,则会启动新的QThread QThreadPool::globalInstance()->activeThreadCount()<MAX_THREAD_COUNT 。在开始时,我调用一个函数start,它调用startNewTask并等待所有线程(QThreadPool::globalInstance()->waitForDone();)的完成。这里有一个问题:发出信号taskDone但函数start已完成且未调用插槽startNewTask

我该如何等到插槽开始?

0 个答案:

没有答案