CloseHandle函数的使用
来源:互联网 发布:淘宝兼职外宣图片 编辑:程序博客网 时间:2024/05/21 06:32
很多程序在创建线程都这样写的:
............
ThreadHandle = CreateThread(NULL,0,.....);
CloseHandel(ThreadHandle );
。。。。。
这不是刚好创建又关闭了吗?线程怎么运行呢?
答:
Closing a thread handle does not terminate the associated thread. To remove a thread object, you must terminate the thread, then close all handles to the thread.
引自MSDN
1,线程和线程句柄(Handle)不是一个东西,线程是在cpu上运行的.....(说不清楚了),线程句柄是一个内核对象。我们可以通过句柄来操作线程,但是线程的生命周期和线程句柄的生命周期不一样的。线程的生命周期就是线程函数从开始执行到return,线程句柄的生命周期是从CreateThread返回到你CloseHandle()。
2,所有的内核对象(包括线程Handle)都是系统资源,用了要还的,也就是说用完后一定要closehandle关闭之,如果不这么做,你系统的句柄资源很快就用光了。
3,如果你CreateThread以后需要对这个线程做一些操作,比如改变优先级,被其他线程等待,强制TermateThread等,就要保存这个句柄,使用完了在CloseHandle。如果你开了一个线程,而不需要对它进行如何干预,CreateThread后直接CloseHandle就行了。
所以
CloseHandel(ThreadHandle );
只是关闭了一个线程句柄对象,表示我不再使用该句柄,即不对这个句柄对应的线程做任何干预了。并没有结束线程。
如果你觉得多了一个变量,也可以写为:
CloseHandel(CreateThread(NULL,0,.....));
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- CloseHandle函数的使用
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- CloseHandle函数的使用
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- URAL 1600 Airport
- 悟透delphi 第七章 组织你的模块
- 求符合条件的最小的M值
- 悟透delphi 第八章 探索数据库
- 编程规范
- CloseHandle函数的使用
- 悟透delphi 第九章 多层体系结构
- virtualbox安装ubuntu-12.04.02-server相关
- s:date标签怎么指定format 来显示24小时制
- TreeMap
- rt-thread装载可重定位文件的源码分析
- 安卓-开发常见错误之AndroidManifest.xml file missing
- Asp.Net请求原理and页面生命周期
- 悟透delphi 第十章 操作界面与操作逻辑