使用QFutureWatcher获取Concurrent返回的值
我在使用QFutureWatcher,读取QFuture实例:Concurrent返回的值。
发生下列报错:
问题描述
报错代码
int test_Concurrent::timeTask(int &num)
{
for (int i = 0; i < 1000; i++)
{
num++;
qDebug() << num;
}
return num;
}
void test_Concurrent::on_pushButton_clicked()
{
int num = 0;
QFutureWatcher<int>* fw = new QFutureWatcher<int>;
connect(fw, &QFutureWatcher<int>::finished, [&] {
qDebug()<<"return result: "<<fw->result();
});
fw->setFuture(future);
if (!future.isFinished())
{
QApplication::processEvents(QEventLoop::AllEvents, 30);
}
原因分析:
本人也不知道是什么原因,有知道的大佬欢迎赐教。
解决方案:
将lambda表达中的 & 换成 = 就解决问题了