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