thread.h

来自「一个HTTP协议的封装类」· C头文件 代码 · 共 32 行

H
32
字号
#pragma once
#include <Windows.h>

//创建线程的对象析构时,线程不会自动结束,并且因为线程用到了对象的Run方法,
//它可能会出错。
//但创建子线程的主线程结束时,子线程会自动结束。

namespace fs
{
	namespace thread
	{
		class Thread
		{
		public:
			Thread(void);
			virtual ~Thread(void);
		private:
			HANDLE hThread;
			DWORD threadId;
		private:
			static void CallRun(LPVOID p);//其内部调用传入的Thread对象指针的Run方法,
											//而不是直接调用Run().
		protected:	
			virtual void Run()=0;//一定要重写Run
			BOOL isRun;//在重写的Run()中,使用isRun
		public:
			HANDLE Start();
			void Stop();//子类实现Run中使用while(isRun)时才有用,退出线程循环
			DWORD GetThreadId();
		};
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?