首页 > 解决方案 > Qt 使用暂停/停止功能将任务动态添加到线程池队列

问题描述

语境

我有一个长时间运行的进程返回结果。这个结果可能需要进一步处理。也可以同时准备好多个结果。这些需要进一步处理的结果中的每一个也可能需要一段时间。

我需要获取这些结果中的每一个,将每个结果放入一个排序队列并处理每个结果,并能够启动/停止此过程。

问题:

目前,我仅限于使用带有QFutureWatcherQFuture并使用QtConcurrent::mapped()QtConcurrent::run()函数(后者不支持直接暂停/停止功能,请参阅下面的注释) .

上面提到的方法的问题是它需要预先知道所有结果,但是为了减少整体处理时间,我想处理每个结果。

如何有效地处理创建带有任务队列的线程池?

标签: c++multithreadingqtqthreadqtconcurrent

解决方案


推荐阅读