定义一个线程基类

25 阅读1分钟

头文件

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