#include "lpThread.h" lpThread::lpThread(QObject *parent) : QThread(parent) { } lpThread::lpThread(TaskFunc_Bool func, QObject *parent /*= nullptr*/): QThread(parent) { _func = func; m_bIsRunning = false; m_bRunSignal = false; } lpThread::~lpThread() { } void lpThread::StartThread() { if( !m_bIsRunning ) { m_bRunSignal = true; m_bIsRunning = true; start(); } } void lpThread::EndThread() { m_bRunSignal = false; wait(); // quit(); // while(m_bIsRunning ) // { // QThread::msleep(25); // } } void lpThread::run() { m_bIsRunning = true; while( m_bRunSignal ) { bool bFlag = false; if (_func) bFlag = _func(); if (bFlag == false) msleep(25); //... wait signal or condition } m_bIsRunning = false; }