头文件
base_thread.h文件
#include <thread>
class BaseThread
{
public:
virtual void Start();
virtual void Stop();
virtual void Wait();
bool is_exit();
private:
virtual void Main() = 0;
bool is_exit_ = false;
std::thread th_;
};
实现文件
base_thread.cpp文件
#include "xthread.h"
using namespace std;
void BaseThread::Start()
{
is_exit_ = false;
th_ = thread(&BaseThread::Main, this);
}
void BaseThread::Stop()
{
is_exit_ = true;
Wait();
}
void BaseThread::Wait()
{
if (th_.joinable())
{
th_.join();
}
}
bool BaseThread::is_exit()
{
return is_exit_;
}