The class "std :: thread" exists but has been created for fun.
ThreadClass.h
#pragma
once
#include
<iostream>
#include
<windows.h>
class
ThreadClass
{
public:
ThreadClass();
~ThreadClass();
void start();
void stop();
bool isRun();
static DWORD __stdcall run_(void* p);
virtual void run() = 0;
protected:
bool threadRunFlag;
HANDLE m_Thread;
};
ThreadClass.cpp
#include
"ThreadClass.h"
//
//\brief constructor,
//\param
//\return
//
ThreadClass::ThreadClass()
{
this->threadRunFlag = false;
}
//
//\brief destructor
//\param
//\return
//
ThreadClass::~ThreadClass()
{
if (this->isRun()) {
this->stop();
}
}
//
//\brief thread start
//\param
//\return
//
void
ThreadClass::start()
{
m_Thread = CreateThread(0, 0, run_, (void*)this, 0, 0);
}
///
///\brief thread end
///\param
///\return
///
void
ThreadClass::stop()
{
this->threadRunFlag = false;
// to be...
}
//
//\brief thread status
//\param
//\return
//
bool
ThreadClass::isRun()
{
return this->threadRunFlag;
}
//
//\brief thread run
//\param
//\return
//
DWORD
__stdcall ThreadClass::run_(void * p)
{
ThreadClass* const THISCLASS = static_cast<ThreadClass*>(p);
THISCLASS->threadRunFlag = true;
THISCLASS->run();
return 0;
}