SVG5/qsthread.cpp
2025-10-12 13:55:56 +09:00

83 lines
1.0 KiB
C++

#include "qsthread.h"
QSThread::QSThread():QThread()
{
m_bStop = false;
m_bRunning = false;
m_nDefaultMicroSleep = 1000;
m_nCurrentState = 0;
}
QSThread::~QSThread()
{
m_bStop = true;
while(m_bRunning==true)
{
usleep(1000*30);
}
}
void QSThread::ExitThread()
{
m_bStop = true;
while(m_bRunning==true)
{
usleep(1000*30);
}
}
void QSThread::TerminateThread()
{
terminate();
m_bRunning = false;
}
void QSThread::ChangeState(int nState)
{
m_nCurrentState = nState;
}
int QSThread::GetCurrentState()
{
return m_nCurrentState;
}
void QSThread::IdleFuction()
{
//1ms sleep
usleep(m_nDefaultMicroSleep);
}
void QSThread::run()
{
m_bRunning = true;
Init();
qDebug()<<"From worker thread: "<<currentThreadId();
usleep(1000*1000);
while (m_bStop==false && m_nCurrentState!=1000)
{
InnerRun();
}
m_bRunning = false;
}
void QSThread::InnerRun()
{
if(m_nCurrentState==0)
{
IdleFuction();
}
}
void QSThread::Init()
{
}