在客户端中,我们创建了后台线程,去执行一些后台操作,但有些全局单例以及初始化我们希望是在后台线程中完成的,而且主线程创建界面等动作必须在那之后执行。现在我们就来实现这个功能:
1.后台线程mainbackgroundprocess.h:
class MainBackgroundProcess : public QObject
{
Q_OBJECT
public:
explicit MainBackgroundProcess(QObject *parent = nullptr);
static MainBackgroundProcess * instance();
void init();
private:
static MainBackgroundProcess * m_mainProcess;
}
class MainBackgroundProcessThread : public QThread
{
Q_OBJECT
public:
void run() override {
QObject::connect(this, &QThread::finished, MainBackgroundProcess::instance(), &QObject::deleteLater);
MainBackgroundProcess::instance()->init();
emit readyToContinue(); // 发出工作完成ÿ