C++ 多线程 CloseHandle函数

来源:互联网 发布:程序员美剧 编辑:程序博客网 时间:2024/06/08 18:51

CloseHandle函数读入一个句柄参数,释放其内存。Microsoft的文档里给它的函数定义是:

BOOL WINAPI CloseHandle(  _In_ HANDLE hObject);

它返回bool类型,若成功释放句柄,就返回true,否则返回false。


句柄也是系统资源,每次用完都要还给系统。


需要注意的是线程并不是句柄,句柄相当于一个线程的指针,线程的寿命到其中的函数执行完毕就结束了,而句柄的寿命是从CreateThread直到CloseHandle,释放一个句柄并不会中断线程的运行。

所以有时创建线程的时候只是很简单的CreatThread(null,0,func,args,o,null);来执行一个函数,并不需要它返回的句柄,这时候就可以在创建线程的同时直接释放它的句柄,可以很简洁的写成:

CloseHandle(CreatThread(null,0,······));