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

刚才看到一篇文章里实现的简单线程类(原文: 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;
};

你可能感兴趣的:(Class,winapi)