⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hthread.h

📁 积下的一点C++编程序库源码
💻 H
字号:
#ifndef HC_THREAD_H
#define HC_THREAD_H 1
//////////////////////////////////////////////////////////////////////////////


//文件名		: HThread.h

//功能			: 线程类,应用于Windows 和 Linux两种系统

//创建/修改日期	: 2003.11.27

//作者			: 韩国静
//

#include "UniThread.h"
class CHThread
{
	UNI_ThreadHandle  m_hThreadHandle;
	UNI_ThreadID      m_ThreadID;
public:
	//构造函数
	CHThread(void)
	{
		m_hThreadHandle =	(UNI_ThreadHandle)UNI_NULL;
		m_ThreadID		=	(UNI_ThreadID)UNI_NULL;
	};
	//析构函数
	~CHThread(void)
	{
		if(m_hThreadHandle!=UNI_NULL)
		{
			UNI_CloseThreadHandle(m_hThreadHandle);
			m_hThreadHandle =(UNI_ThreadHandle)UNI_NULL;
		}
	};
	//创建新线程。线程入口函数原形为:UNI_THREADPROC ThreadProc (void *pParam);
	UNI_BOOL Run(PUNI_THREADPROC pThreadProc, void * pParam)
	{
		if(m_hThreadHandle!=UNI_NULL)
			return UNI_FALSE;
		return UNI_CreateThread(pThreadProc,pParam,&this->m_hThreadHandle,&this->m_ThreadID);
	};
	//等待线程退出并回收线程资源。
	UNI_BOOL Join(void)
	{
		if(m_hThreadHandle==UNI_NULL)
			return UNI_FALSE;
		return UNI_WaitCloseThread(this->m_hThreadHandle);
	};
	
	//Linux下与线程分离, Windows 下释放线程句柄。
	UNI_BOOL ReleaseHanele(void)
	{
		if(UNI_CloseThreadHandle(m_hThreadHandle))
		{
			m_hThreadHandle=UNI_NULL;
			return UNI_TRUE;
		}
		return UNI_FALSE;
	};
	//返回线程对象的ID值,
	UNI_ThreadID GetThreadID(void)
	{
		return m_ThreadID;
	};

	//挂起线程,Linux下返回UNI_FALSE.. 
	UNI_BOOL Suspend(void)
	{
		return UNI_SuspendThread(this->m_hThreadHandle);
	};
	//从挂起的地方重新动行线程
	UNI_BOOL Resume(void)
	{
		return UNI_ResumeThread(m_hThreadHandle);
	};
	//杀死线程对象,议不要使用,最好让线程自己结束。
	UNI_BOOL Terminate(void)
	{
		return UNI_KillThread(m_hThreadHandle);
	};
};
#endif//HC_THREAD_H

⌨️ 快捷键说明

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