线程被Terminate或线程函数退出以后是否还需要调用CloseHandle释放?

VC/MFC > 进程/线程/DLL [问题点数:30分,结帖人yzx0023]
等级
本版专家分:5722
勋章
Blank
红花 2006年7月 移动平台大版内专家分月排行榜第一
2006年5月 硬件/嵌入开发大版内专家分月排行榜第一
2005年3月 硬件/嵌入开发大版内专家分月排行榜第一
2004年11月 硬件/嵌入开发大版内专家分月排行榜第一
2004年9月 硬件/嵌入开发大版内专家分月排行榜第一
Blank
黄花 2006年6月 硬件/嵌入开发大版内专家分月排行榜第二
2005年5月 硬件/嵌入开发大版内专家分月排行榜第二
2005年1月 硬件/嵌入开发大版内专家分月排行榜第二
2004年12月 硬件/嵌入开发大版内专家分月排行榜第二
2004年10月 硬件/嵌入开发大版内专家分月排行榜第二
Blank
蓝花 2005年8月 硬件/嵌入开发大版内专家分月排行榜第三
结帖率 99.26%
等级
本版专家分:6337
等级
本版专家分:8464
等级
本版专家分:2726
等级
本版专家分:188320
勋章
Blank
进士 2006年 总版技术专家分年内排行榜第五
2004年 总版技术专家分年内排行榜第八
Blank
银牌 2006年10月 总版技术专家分月排行榜第二
2006年9月 总版技术专家分月排行榜第二
Blank
铜牌 2006年5月 总版技术专家分月排行榜第三
Blank
微软MVP 2006年1月 荣获微软MVP称号
2008年1月 荣获微软MVP称号
2007年1月 荣获微软MVP称号
等级
本版专家分:432979
勋章
Blank
榜眼 2009年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第二
Blank
进士 2018年总版新获得的技术专家分排名前十
Blank
银牌 2009年7月 总版技术专家分月排行榜第二
2009年3月 总版技术专家分月排行榜第二
2009年1月 总版技术专家分月排行榜第二
2005年7月 总版技术专家分月排行榜第二
2005年5月 总版技术专家分月排行榜第二
2005年3月 总版技术专家分月排行榜第二
Blank
优秀版主 优秀小版主
2015年8月优秀小版主
2015年9月优秀小版主
2015年5月优秀小版主
2015年2月论坛优秀版主
无聊客

等级:

Blank
红花 2006年7月 移动平台大版内专家分月排行榜第一
2006年5月 硬件/嵌入开发大版内专家分月排行榜第一
2005年3月 硬件/嵌入开发大版内专家分月排行榜第一
2004年11月 硬件/嵌入开发大版内专家分月排行榜第一
2004年9月 硬件/嵌入开发大版内专家分月排行榜第一
Blank
黄花 2006年6月 硬件/嵌入开发大版内专家分月排行榜第二
2005年5月 硬件/嵌入开发大版内专家分月排行榜第二
2005年1月 硬件/嵌入开发大版内专家分月排行榜第二
2004年12月 硬件/嵌入开发大版内专家分月排行榜第二
2004年10月 硬件/嵌入开发大版内专家分月排行榜第二
Blank
蓝花 2005年8月 硬件/嵌入开发大版内专家分月排行榜第三
关于c++杀线程函数TerminateThread强烈不建议使用

TerminateThread强烈不建议使用,...你无法保证调用之后会立即退出,同时线程的堆栈均不会销毁, 导致内存泄露。如果调用了这个函数,请确保使用WaitForSingleObject来等待线程对象的结束。     参考链接: ...

线程CreateThread()之后CloseHandle()为什么不会直接关闭线程

调用CreateHandle创建线程之后线程内核对象的引用计数不为1,再CloseHandle就会使其引用计数减至0,系统就会销毁该内核对象, 那为什么一般要立即执行CloseHandle()函数

CloseHandle(),TerminateThread(),ExitThread()的区别

线程的handle是指向“线程的内核对象”的,而不是指向线程本身.每个内核对象只是内核分配的一个内存块,并且只能由内核访问。该内存块是一种数据结构,它的成员负责维护对象的各种信息(eg: 安全性描述,引用计数等)...

C++中CloseHandle()函数的使用

...很多程序在创建线程都这样写的: ThreadHandle = CreateThread(NULL,0,.....); CloseHandel(ThreadHandle ); 这不是刚好创建又关闭了吗?线程怎么运行呢? 解释: Closing a thread

CloseHandle()函数的使用

CloseHandle()函数的使用??很多程序在创建线程都这样写的:............ThreadHandle = CreateThread(NULL,0,.....);CloseHandel(ThreadHandle );。。。。。这不是刚好创建又关闭了吗?线程怎么运行呢?==========...

CloseHandle()函数

关闭一个内核对象。其中包括文件、文件映射、进程、线程、...若在线程执行完之后,没有调用CloseHandle,在进程执行期间,将会造成内核对象的泄露,相当于句柄泄露,但不同于内存泄露,这势必会对系统的效率带来一定程

CreateThread()之后又马上CloseHandle()的问题

很多程序在创建线程都这样写的: ............ ThreadHandle = CreateThread(NULL,0,.....); CloseHandel(ThreadHandle ); 。。。。。 这不是刚好创建又关闭了吗?线程怎么运行呢? ===============================...

线程创建后为什么要调用CloseHandle

很多程序在创建线程都这样写的:  ............  ThreadHandle = CreateThread(NULL,0,.....);  CloseHandel(ThreadHandle );  。。。。。  这不是刚好创建又关闭了吗?线程怎么运行呢? =============...

MFC 线程退出方法

A.线程函数的返回(推荐用法)(需要考虑的是catch/运行标志/错误处理等方法) ...线程函数的返回可以确保线程中的C++对象撤销函数正确的撤销,操作系统正确的释放线程堆栈所使用的内存,系统将线程的退

线程自然退出调用TerminateThread退出线程的区别

#include "stdafx.h" #include <stdio.h> #include <windows.h> class CMyClass { public: CMyClass() { printf("CMyClass()\n"...DWORD...

线程何时释放内核资源

转载自http://hi.baidu.com/wangguang246/blog/item/eb70032817b5f3e599250aaf.html 最终编辑 yaofly 一例子1  if(sClient!=INVALID_SOCKET) ... hThread = CreateThread(NULL,0,ClientThread,(LPVOID)pClie

句柄泄露与CloseHandle()

摘自:... CloseHandle()函数的使用?? 很多程序在创建线程都这样写的: ............ ThreadHandle = CreateThread(NULL,0,.....); CloseHandel(ThreadHandle ); 。。。。。 这不是刚

Delphi中的线程类--之(3)

Delphi中的线程类 猛禽[Mental Studio]http://mental.mentsu.com 之三说完构造函数,再来看析构函数:destructor TThread.Destroy;begin if (FThreadID begin Terminate; if FCreateSuspended then 

CloseHandle()和ExitThread()区别(防止内存泄露)

 CloseHandle的功能是关闭一个打开的对象句柄,该对象句柄可以是线程句柄,也可以是进程、信号量等其他内核对象的句柄,而ExitThread的功能是终止一个线程,它所接受的参数是一个线程退出码。  通过调用Clos

VC退出线程的方法

标题很简单,但是要讨论的地方不少; 多线程管理,在程序开发中非常重要,虽然

分析进程、线程的终止

需要终止进程时,需要是PROCESS_TERMINATE,因为他有终止的权限,PROCESS_ALL_ACCESS只有读写的权限。 如果是有窗口的,使用spy++找出它的classname,或者,caption, 假如,它的classname是MyProc; HWND ...

线程类,线程函数的终止

正确终止线程的方法终止线程类//向线程退出消息,线程类对象执行ExitInstance()在该函数中删除自己申请的堆栈if(m_PwroffInfoRecvThread!=NULL) m_PwroffInfoRecvThread->PostThreadMessage(WM_QUIT,0,0);//当线程...

再谈线程基类(答王立卫兄)

针对王兄设计的线程基类,提出了一些个人浅见,王兄后来回复道:“谢谢SeaWave提的意见,线程最好的终止方式是让线程执行完任务自己退出,而我们要做的就只是closehandle。还有就是static DWOR

WaitForSingleObject 等待线程句柄

WaitForSingleObject(hThread/*某个线程的...我还需要调用类似于ReleaseSemaphore、对hThread做类似处理的某个(??)函数吗?什么函数? <br /> 比如: CWinThread *pThread=AfxBeginThrea

为什么是Createthread后要CloseHandle

对创建线程线程句柄讲得还是比较清晰的 摘至

FreeLibraryAndExitThread DLL中线程的安全退出

首先我们先来看一下FreeLibraryAndExitThread这个APIVOID FreeLibraryAndExitThread( HMODULE hModule, DWORD dwExitCode); MSDN:The FreeLibraryAndExitThread function decrements the reference count of a ...

关于线程的句柄资源

一例子1   if(sClient!=INVALID_SOCKET)  {  hThread = CreateThread(NULL,0,ClientThread,(LPVOID)pClientInfo,0,&dwThread);  //free(pClientInfo);  if(hThread==NULL) ... AfxMessageB

创建线程是否调用CloseHandle

创建线程是否调用CloseHandle 关于是否在创建线程调用Closehandle一直困惑,今天查了查,才明白。 CloseHandle关闭句柄并没有终止新创建的线程。只是表示对新创建的线程的引用不敢兴趣,系统会递减新...

Win32多线程编程(2) — 线程控制

Win32多线程编程之线程控制

嵌入式工程师养成计划之——嵌入式软件工程师完全学习指南

本系列课程针对有意向学习嵌入式软件开发的童鞋,从零开始、深入浅出,内容涵盖:linux系统基础、shell、linux C编程、linux系统编程、网络编程、ARM体系结构及汇编语言、ARM裸机编程、linux系统移植、linux驱动开发等模块。分多个子课程逐步学习。 本课程是全套课程的第0部(前传),目的是讲解我们的整个视频学习体系路线图,同时也会对大家学习路线的一个指引。 本期课程共计4节课,主要回答了何为嵌入式、为何要学习嵌入式、什么人适合学嵌入式、究竟应该怎样去学嵌入式等问题。最后为大家详细介绍了我们的嵌入式软件工程师学习路线图,希望能够对大家的嵌入式学习之路有所指引。

jdk1.8 64位官方正式版 jdk-8u91-windows

jdk1.8 64位官方正式版 jdk-8u91-windows

Python3.2.3官方文档(中文版)高清完整PDF

Python3.2.3官方文档(中文版) 由笔者自己翻译,有不当之处希望在博客上相互交流

汇编语言程序设计

汇编语言是一门低级程序设计语言,在数以千计的计算机语言中,有着不可替代的重要地位,广泛地用于开发操作系统内核、设备驱动程序等。随着近年来物联网、嵌入式系统的发展,汇编语言在行业中的地位也再次攀升,在2017年1月的TIOBE排行榜上,再次进入前十。对大多数学习计算机的人士而言,是理解计算机系统核心知识的一个桥梁,在人才培养中也起着特殊的作用。课程面向计算机初学者,介绍汇编语言程序设计基础的部分。 绍寄存器、内存、程序结构、模块化程序设计、中断等内容,课程重视对学习方法的指导和引导,提倡和支持用实践的方式开展学习,目标是培养学习者的自学能力和实践能力,以此支持对最新的汇编语言开发技术的学习。

navicat简体中文版 绿色版 (64位)

解压后安装navicat,打开navicat执行PatchNavicat即破解成功。可以正常使用啦。

官方 DEV C++ 中文版

官方的DEV C++ 规范好用的自学C语言工具

相关热词 c# 为窗体增加资源文件 c#控制器怎么提示 c#常见异常 c#怎么写人机 c# xml转json c# 实例化名字 c#循环嵌套if语句 c# sql日期最小时间 c# sql 读取数据 c# 获取基类型