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

原创 2006年05月18日 18:19:00
刚才看到一篇文章里实现的简单线程类(原文: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;
};

相关文章推荐

进程线程 句柄

  • 2015年01月25日 21:36
  • 1KB
  • 下载

线程句柄调试

  • 2012年11月24日 08:11
  • 2.52MB
  • 下载

Win32下对多个的线程句柄的关闭的控制(下)

网上看到自己04年发表在CSDN上的文章,当时还上了首页。现在看来蛮幼稚的,很有趣;当时应该没有blog这种东东,现在发表到blog上,纪念一下逝去的青春。 --------------------...

JAVA Runtime.addShutdownHook()方法{拿到线程句柄,在程序关闭之前调用释放资源}

Runtime#addShutDownHook方法是给虚拟机增加一个虚拟机关闭时的调用钩子,在虚拟机关闭的时候调用这些钩子线程。还是非常有用的一个方法,最直接的用法就是监控了,因为其是在虚拟机临关闭时...

多线程,线程创建及关闭句柄存在的问题,终止线程的运行的几个函数

多线程的编程在Win32方式下和MFC类库支持下的原理是一致的,进程的主线程在任何需要的时候都可以创建新的 线程。当线程函数执行完任务后,自动中止线程;当进程结束后,所有的线程都中止。 在Wind...

线程ID和句柄的区别

以下几点是一些总结: ●CreateThread() API 用于创建线程。 API 返回同时线程句柄和线程标识符 (ID)。 线程句柄有完全访问权创建线程对象。 运行线程时线程 ID 唯一标识线程...

关于线程的句柄资源

一例子1      if(sClient!=INVALID_SOCKET)    {     hThread = CreateThread(NULL,0,ClientThread,(LPVOID...

线程、进程、窗口句柄相关API整理

这几天在学习线程和进程,今天特别把MSDN中的相关资料整理一下,特地发出来。这样找MSDN的时候不会大盲目。如果还有更多的或是什么地方有错误请指出。 如果进程只有一个线程,那么线程ID与进程ID就是指...

多线程委托之跨线程问题分析--在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke(解决方法已更新)

多线程委托之跨线程问题分析 今天在写一个程序测试运行跨线程同步的时候出一个异常信息。 异常信息:System.InvalidOperationException “在创建窗口句柄之前,不能在控件上调...

EPROCESS 进程/线程优先级 句柄表 GDT LDT 页表 《寒江独钓》内核学习笔记(2)

在学习笔记(1)中,我们学习了IRP的数据结构的相关知识,接下来我们继续来学习内核中很重要的另一批数据结构: EPROCESS/KPROCESS/PEB。把它们放到一起是因为这三个数据结构及其外延和w...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关闭线程句柄并不代表终止线程
举报原因:
原因补充:

(最多只允许输入30个字)