You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
815 B
C++

#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;
}