📄 subject_66865.htm
字号:
<p>
序号:66865 发表者:badboy 发表日期:2003-12-27 08:30:33
<br>主题:CloseHandle(HANDLE hObject) 函数的作用?
<br>内容: 书上说这个函数CloseHandle(HANDLE hObject) 的作用是当我们完成了工作后<BR><BR>,(工作是不是就是对hObject这个对象操作完了以后?我们操作的当然不只是这<BR><BR>个对象,而是这个对象所对应的东西,比如线程核心对象所对应的就是线程),<BR><BR>应该调用CloseHandle(HANDLE hObject)释放核心对象。如果忘记了调用,就会发<BR><BR>生资源泄漏。 我不太明白这个泄漏的含义。 我只知道,如果我们在一个系统中<BR><BR>产生了很多线程,而该进程一般不会结束。可线程却总在产生和结束。这样的话<BR><BR>,这个进程最终有数百甚至上千个开启的“线程核心对象”。早晚,这个进程再<BR><BR>也没有内存可供产生新的线程了! 这算资源泄漏?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:michael 回复日期:2003-12-27 09:03:08
<br>内容: 是这样。操作系统是通过句柄来管理系统资源的。进程、文件数据库连接,甚至字符串都有对应的句柄。但是操作系统能管理的句柄是有限的。如果句柄用完,那么就操作系统就没法工作了。所以每次使用完后要释放,和内存泄漏相似。句柄是资源的唯一标识。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:dsadsdas 回复日期:2003-12-27 14:03:31
<br>内容:更有趣的是,你的系统里有一块内存,叫Non-page pool。很多核心对象要用这个内存的,而你的内存再多,这块内存一般也不超过128M。所有很多Windows系统的hard limit其实是NPP的limit。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:badboy 回复日期:2003-12-27 20:22:32
<br>内容:"核心对象要用这个内存的,"<BR> <BR> 您的意思是不是凡是产生的核心对象都要在这个Non-page pool内存里强占一席之地?如果核心对象不释放,这个地方就不会腾出来?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:圣殿武士 回复日期:2004-02-20 11:41:24
<br>内容:那如果我用_beginthreadex()开的线程,等线程函数结束后要调用CloseHandle吗?是必须的吗?<BR>如果我不断的开线程,当然线程也在不断的退出,怎么调用这个函数来释放呢?<BR><BR> 小弟很急,多谢!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -