void QFutureWatcher::resultReadyAt(int index)当被监视的未来报告索引处的就绪结果时,发出该信号。如果将来报告多个结果,索引将指明是哪个结果。可以无序地报告结果。要获取结果,请调用future().result(index);
如果一个QFutureWatcher只能监视一个QFuture实例,并且该实例只能返回一个结果,那么索引的用途是什么?我觉得我不明白如何正确地使用这两个工具。
我想将返回其任务结果的多个任务排入队列。如果我有一个任务列表,我希望将任务结果与任务列表相关联。
发布于 2017-02-17 03:53:30
首先,请注意,QFuture不是您自己创建其原始(非复制)实例的类:这些实例是由并发框架中的工厂方法提供的。
如果一个QFutureWatcher只能监视一个QFuture实例,并且该实例只能返回一个结果,则为
这是不正确的:无论它包装的异步操作表示多少结果,未来都会返回,并且QFutureWatcher具有相关的信号resultReadyAt和resultsReadyAt,它们在事件发生时异步地指示这些事件。
我想将返回其任务结果的多个任务排入队列。如果我有一个任务列表,我希望将任务结果与任务列表相关联。
QtConcurrent::map和QtConcurrent::mapped就是您正在寻找的:它们提供了具有多个结果的未来。
https://stackoverflow.com/questions/42281992
复制相似问题