多线程管理类
2010-09-04 20:48:19 来源:WEB开发网由于最近经常搞些跟线程有关的东西,感觉多线程确实麻烦,线程间要处理好同步与通讯,如果用CWinThread好一点,直接是一个线程对象,如果用AfxBeginThread,那必须定个全局函数,或者写个静态函数,一般是传个this指针进去,然后再用这个指针调用本类函数的成员函数,用起来比较麻烦,现在问题是能不能不用全局或者静态函数来实现呢,于是我实现了这个类,来所简化多线程的创建和关闭的操作。
现在简要看一下类的数据和成员函数
template<class T>
class CYGMulThread
{
protected:
typedef void (T::* _pThreadFunc)(void );
static _pThreadFunc ThreadFunc;
static BOOL s_IsBreaking; //用以判断线程是否要中断
static CWaitDlg s_Waitdlg;//等待对话框
//内部线程
static UINT ThreadProc(LPVOID lpParam);
public:
//在线程内部使用,用以判断有没有要结束的信号
static BOOL IsBreakThread() ;
//----------------------------非静态
protected:
CYGMulThread();
virtual ~CYGMulThread();
CWinThread **m_pThread;//线程数组指针
int m_nThreadCount;
//处理windows的消息
void PeekMessageLoop();
public:
int GetThreadCount() const ;
//pFunc=输入一个void f(void)的成员函数,nThreadCount=线程数目
void YGBeginFuncThread(_pThreadFunc pFunc,int nThreadCount);
//结束线程时调用
bool EndAllThread(const char *szMsg);
};
- ››管理/var/spool/clientmqueue/下的大文件
- ››管理私有云,第 2 部分: 使用 WebSphere CloudBur...
- ››管理 Eclipse 环境:Eclipse 维护的神秘艺术
- ››管理私有云:WebSphere CloudBurst Appliance 命令...
- ››线程状态图
- ››管理启动项 - Windows 7中的BCDEDIT命令
- ››管理Exchange 2003注意事项
- ››管理好超级管理员帐户堵住系统漏洞
- ››管理数据中心资源池需要注意的事项
- ››管理虚拟化环境的两大重要标准:VMAN和OVF
- ››管理与技术有机结合 保障网络安全运行
- ››管理Windows内部数据库(MICROSOFT##SSEE)实例
更多精彩
赞助商链接