如何让程序自动管理线程
2010-08-15 20:46:26 来源:WEB开发网核心提示:显然,我们仅有这一个类还不能完成我 们所需的工作,如何让程序自动管理线程(2),我们还要一个负责具体监控的ThreadTask类,ThreadTask类中有 一个监控线程ThreadTaskFunc( )负责监控并删除线程,该类定义如下:class CThreadTask : public CObject{DECLAR
显然,我们仅有这一个类还不能完成我 们所需的工作,我们还要一个负责具体监控的ThreadTask类,ThreadTask类中有 一个监控线程ThreadTaskFunc( )负责监控并删除线程。该类定义如下:
class CThreadTask : public CObject
{
DECLARE_DYNAMIC( CThreadTask )
public:
CThreadTask(); //构造函数
~CThreadTask();
CBOOL IsValid();
void AddHandle( CONST HANDLE cHandle ); //添加线程句柄到m_ObList中
void CloseThreadHandles(); //(关闭线程)
static CThreadTask& GetCThreadTask(); //用于在Managerthread类中 获得ThreadTask类的指针
CObList m_ObList;//线程句柄组
HANDLE m_Handle;//线程句柄
BOOL m_bKeepGoing;//是否 已运行
};
IMPLEMENT_DYNAMIC( CThreadCareTaker, CObject )
其中IsValid()是用于检验ThreadTaskFunc()是否已动行了,其它意思 都很明显。
流程图
总的流程图如下:
更多精彩
赞助商链接