于无声处

人生三恨:鲥鱼多剌,海棠无香,需求常变

关闭线程句柄并不代表终止线程
刚才看到一篇文章里实现的简单线程类(原文:http://blog.csdn.net/wei801004/archive/2006/05/18/744341.aspx),注意到这段代码似乎认为简单地CloseHandle线程就可以终止一个线程,原文的代码如下,注释是我添的:
typedef unsigned (WINAPI *PTHREADFUN)(LPVOID lpParameter);

class CThread {
public:
CThread(void) {}
~CThread(void) {}
void Start(void);
void Stop(void) const { CloseHandle(m_hThread); } //CloseHandle并不代表就stop了线程
//同时函数也不应该是const的,因为
//关闭了句柄应该把m_hThread置为空

static DWORD WINAPI ThreadFun(LPVOID lpParameter); //似乎应该是私有的
virtual DWORD WINAPI ThreadWorkItem(LPVOID lpParameter) = 0;
private:
HANDLE m_hThread;
DWORD m_dwThreadID;
};
阅读更多
文章标签: winapi class
个人分类: 其他(技术文章)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

关闭线程句柄并不代表终止线程

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭