1. 概述
QT程序启动后运行的第一个线程称为主线程,即GUI线程,QT中所有的组件类只能工作在GUI线程中。其他为工作线程,主要负责处理除GUI之外的任务。
QThread是QT线程中的的公共抽象类,提供了与系统无关的线程管理方法。QThread 的使用方法有如下两种:
🔴QThread类的run
🔴QThread类的moveToThread
2. QThread类的run
2.1. 简介
QThread类的run方式下,线程在run()中开始执行,默认情况下,run()通过调用exec()启动事件循环并在线程里运行一个Qt的事件循环。当线程启动和结束时,QThread会发送started()和finished()信号,可以通过连接QThread的finish()信号到QObject::deleteLater()槽函数,以释放该线程中的对象。当finish()信号发出时,事件循环已停止运行,除了延迟的删除事件外,线程中不会再处理任何事情。
/*workerThread 为QThread的派生类*/
connect(workerThread, &WorkerThread::finished, workerThread, &QObject::delet