moveToThread()、QtConcurrent注意项

【moveToThread】

功能:将类中的函数在子线程中执行。

1、该类公有继承QObject

2、该类中函数为公共函数

3、主线程中创建该类对象时不可以指定父对象

4、线程函数必须由信号槽方式触发。不可以用对象调用函数的方式。

具体案例参考:QT线程之 moveToThread() 只能用信号槽方式触发_立冲君也的博客-CSDN博客

 【QtConcurrent】

QFuture<void> f1=QtConcurrent::run();  

f1.isFinished()为true,f1.waitForFinished()可能依然报错。即isFinished()不能说明真正的正确结束。

run执行的函数如果没有正确退出或其他情况,waitForFinished极易报错。

可以参考遇到此问题的博客QFuture.isFinished()为true,QFuture.waitForFinished()竟然报错

 

posted @ 2022-09-20 10:55  夕西行  阅读(156)  评论(0编辑  收藏  举报