用CreateThread(...)创建线程...?
用CreateThread(...)创建一个线程,是否一定要用CloseHandle()来关掉该线程的句柄?
如果是,请问该在何处调用?如果不调用,会否造成内存泄漏?
问题点数:20、回复次数:4Top
1 楼yangmajituipo()回复于 2001-08-17 10:16:35 得分 0
建议不要用底层API CreateThread
用beginthreadex
也不一定要CloseHandle,让它自然中止最好
Top
2 楼horsehorse(老马)回复于 2001-08-17 11:45:08 得分 10
MSDN中提到释放线程资源的两个条件:
1. 线程结束。
2. 与线程相关联的所有句柄均已关闭。
所以,最好还是调用CloseHandle。
我试过两种方法:
1. 作为线程函数的最后一句。
2. 线程刚一创建就调用。
第二种方法有点可怕,不过好象也没出什么问题。一般用于线程太多,懒得保存线程句柄的情况。
别忘了给分!最近骗子越来越多。Top
3 楼sunx007(又见飞刀)回复于 2002-05-31 11:51:32 得分 0
线程刚一创建就调用也可以。Top
4 楼batizhou(batizhou)回复于 2002-05-31 12:05:52 得分 10
最好不要用CreateThread();因为这样在线程函数中就不能使用C Run-time Library,malloc(),free(),fopen()...这些都是C Run-time Library中的函数。
应该用_beginthreadex(),如果你以后要使用handle,则不用关闭它,否则你最好在_beginthreadex()后先判断是否成功,然后CloseHandle(hThread)。Top
相关问题
- 请问创建线程是用afxBeginThreaD还是应该用CREATETHREAD?
- 用CreateThread创建的线程池,WaitForSingleObject等待事件驱动
- 在VB中如何使用CreateThread函数创建线程
- 用CreateThread()函数创建线程的简单问题!
- 请教如何在类中用createthread创建线程
- CreateThread创建线程的问题
- 用CreateThread创建一个线程后如果不CloseHandle,会发生什么事情?
- 创建线程!!!
- 创建线程
- CreateThread创建线程,那么如何关闭这个线程???????????????????????????????急,在线等.....





