怎么建设官方网站,专业网站发展趋势,wordpress 标题重复,公司做网站需准备资料QFutureWatcher理论总结 一、概述二、转态 一、概述
QFutureWatcher类允许我们使用信号槽的方式去监控QFuture。
QFutureWatcher提供关于QFuture的信息和通知。使用 setFuture() 函数开始监视特定的QFuture。
future()函数通过setFuture()返回 QFuture 集合。
为了方便起见… QFutureWatcher理论总结 一、概述二、转态 一、概述
QFutureWatcher类允许我们使用信号槽的方式去监控QFuture。
QFutureWatcher提供关于QFuture的信息和通知。使用 setFuture() 函数开始监视特定的QFuture。
future()函数通过setFuture()返回 QFuture 集合。
为了方便起见QFuture的几个函数也可以在 QFutureWatcher 中使用progressValue() progressMinimum() progressMaximum() progressText() isStarted() isFinished() isRunning() isCanceled() isPaused() waitForFinished() result() 和 resultAt()。cancel()、setPaused()、pause()、resume() 和 togglePaused() 函数是QFutureWatcher中的槽函数。
二、转态
状态变化通过 started()、finished()、canceled()、paused()、resumed()、resultReadyAt() 和 resultsReadyAt() 信号来报告。进度信息由 progressRangeChanged()、void progressValueChanged() 和 progressTextChanged() 信号提供。
节流控制由 setPendingResultsLimit() 函数提供。当挂起的 resultReadyAt() 或 resultsReadyAt() 信号的数量超过限制时future表示的计算将自动进行节流。一旦挂起的信号数量下降到限制以下计算将恢复。
示例开始计算并在计算结束时获得一个槽回调: // Instantiate the objects and connect to the finished signal.MyClass myObject;QFutureWatcherint watcher;connect(watcher, SIGNAL(finished()), myObject, SLOT(handleFinished()));// Start the computation.QFutureint future QtConcurrent::run(...);watcher.setFuture(future);请注意并非所有正在运行的异步计算都可以取消或暂停。例如QtConcurrent::run() 返回的 future 不能被取消但是QtConcurrent::mappedReduced() 返回的 future 可以。
QFutureWatchervoid 被指定为不包含任何结果获取函数。任何 QFuture 也可以被 QFutureWatcher 观测到。如果只需要状态或进度信息这是有用的而不是实际的结果数据。 QFutureWatcher 就是监测的并不是去表示结果的。