Qt 之 Concurrent Map 和 Map-Reduce

简述

QtConcurrent::map()、QtConcurrent::mapped() 和 QtConcurrent::mappedReduced() 函数对一个序列中(例如:QList、QVector)的项目并行地进行计算。QtConcurrent::map() 就地修改一个序列,QtConcurrent::mapped() 返回一个包含修改内容的新序列,QtConcurrent::mappedReduced() 返回一个单一的结果。

这些函数是 Qt之Concurrent框架 的一部分。

上述的每个函数都有一个 blocking 变量,其返回的是最终结果,而不是一个 QFuture。可以用和异步变量同样的方式来使用它们。

QList<QImage> images = ...;

// 每次调用都会被阻塞,直到整个操作完成
QList<QImage> future = QtConcurrent::blockingMapped(images, scaled);

QtConcurrent::blockingMap(images, scale);

QImage collage = QtConcurrent::blockingMappedReduced(images, scaled, addToCollage);

注意:上述的结果类型不是 QFuture 对象,而是实际结果类型(在这种情况下,是 QList<QImage>和 QImage)。

|

©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付39.90元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值