void QFutureWatcher::resultReadyAt(int index)
当观察的未来在索引处报告准备结果时,将发出此信号。如果将来报告多个结果,则索引将指示它是哪一个。结果可以无序报告。要获得结果,请致电future().result(index);
如果QFutureWatcher
只能观看一个QFuture
实例,并且实例只能返回一个结果,那么索引用于什么?我觉得我不明白正确使用这两者的方法。
我想排队多个返回任务结果的任务。如果我有一个任务列表,我想将任务结果与任务列表相关联。
答案 0 :(得分:1)
首先,请注意QFuture
不是您自己创建的原始(非复制)实例的类:实例由并发框架中的工厂方法提供。
如果QFutureWatcher只能观看一个QFuture实例,并且该实例只能返回一个结果
这是不正确的:未来会返回它所包含的异步操作所代表的许多结果,QFutureWatcher
具有相关信号resultReadyAt
和resultsReadyAt
,这些信号在发生时异步指示这些事件。
您正在寻找我想排队多个返回任务结果的任务。如果我有一个任务列表,我想将任务结果与任务列表相关联。
QtConcurrent::map
和QtConcurrent::mapped
:它们提供具有多重结果的期货。