QFutrue 最简单使用案例详解

1. 概念
QFuture是Qt库中的一个类,它代表了一个异步计算的结果。当你启动一个耗时的操作,如文件读取或复杂的计算任务时,我们不希望这些操作阻塞主线程,从而影响用户界面的响应性。

QFuture就是用来处理这种异步操作的,它允许你在任务完成后获取结果,而不必阻塞主线程。

2. 用途

  • 异步执行任务,避免阻塞UI线程。
  • 监控任务的进度和状态。
  • 获取异步任务的结果。

3. 重点:

QFutrue 和 QFutureWatcher 都是模版类, 因此在定义对象时, 要保证类型是一致的,如:

QFuture<bool> future;   则对应的要定义   QFutureWatcher<bool> watcher;

4. 示例代码:

bool RunningFunction(int n) {  
    //耗时相关代码 
    return true; // 或者false  
}  

int seconds = 1;
QFuture<bool> future = QtConcurrent::run(RunningFunction, seconds); 

QFutureWatcher<bool> watcher; 

watcher.setFuture(future);

5. 解释:

QFuture<T> QtConcurrent::run 的基本形式是:  QFuture<T> QtConcurrent::run(Function function,...), 后面的...代表的是function传入的参数;

因此,此处在调用run时,函数参数为:RunningFunction  和 seconds;

在执行watcher.setFuture(future)语句之后, 函数RunningFunction 则开始启动运行;

在RunningFunction 运行完成后,watcher则会发出 finished 信号,此时,我们便可以处理其他动作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值