在QT中使用,多线程打开创建界面,报错如下
创建方式:
CXXX.h中定义成员变量
std::thread m_thInitAxisVision;
析构函数中调用
if (m_thInitAxisVision.joinable())
{
m_thInitAxisVision.join();
}
线程启动方式
m_thInitAxisVision = std::thread(&CXXX::threadInit, this);
软件在启动中,会报错,上图。
正确方式如下:
1.定义成员变量: QThread m_newThread_initAxis;
2.构造函数(或初始化函数)内调用
QObject::connect(&m_newThread_initAxis, &QThread::started, this, &CXXX::slot_threadInit);
m_newThread_initAxis.start();
void CXXX::slot_threadInit()
{
threadInit();
}
void CXXX::threadInit(){
//多线程函数实现
}