QT线程池阻塞主界面UI问题
项目场景:
项目场景:多线程新手。在基于QT开发的某项目中,想要实现点击Button创建线程加入线程池中运行的功能。但在测试过程中发现点击按钮后UI界面会锁死,直到所有线程完成工作后才会解锁。网上搜索相关问题无果后自己排查。
原因分析与解决方法:
原因很简单,就是把pool声明在槽函数中了。槽函数结束要释放所有的局部变量,但是pool中有的线程还没结束无法释放,所以就卡死在这里了。放在一个不会被释放的位置,比如构造函数中,就解决了。
#include
MainWidget::MainWidget(QWidget *parent):QMainWindow(parent),ui(new Ui::widget)
{
QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
ui->setupUi(
QT线程池阻塞主界面UI问题最先出现在Python成神之路。
共有 0 条评论