句柄赋值会导致引用计数增加吗——CloseHandle问题
1、句柄赋值会导致引用计数增加,赋值之后是不是新的句柄变量也需要CloseHandle呢
HANDLE hHandle2 = hHandle1;//hHandle1调用了CloseHandle了,hHandle2还需要再调用吗?
2、循环调用返回句柄的API,赋值给同一个句柄变量需要每次CloseHandle吗
HANDLE hHandle = NULL;
for(int i= 0;i < 100;i++)
{
hHandle = CreateThread(……);//
//这个句柄需要每次都在这个位置CloseHandle(hHandle)吗
}
//还是只需要在这个位置CloseHandle(hHandle)呢
3、什么类型的句柄需要CloseHandle呢,还是所有的句柄都需要CloseHandle
HWND 窗口句柄需要CloseHandle?
[最优解释]
1.hHandle2在CloseHandle(hHandle1)之后,不需要再CloseHandle。hHandle2可以直接赋值为NULL。
2.如果需要CloseHandle的话,要放在循环里面。如果放在循环外面,只是CloseHandle了最后一次循环产生的Handle
3.
The CloseHandle function closes handles to the following objects:
Access token
Communications device
Console input
Console screen buffer
Event
File
File mapping
Job
Mailslot
Mutex
Named pipe
Process
Semaphore
Socket
Thread
[其他解释]
、循环调用返回句柄的API,赋值给同一个句柄变量需要每次CloseHandle吗
HANDLE hHandle = NULL;
for(int i= 0;i < 100;i++)
{
hHandle = CreateThread(……);//
//这个句柄需要每次都在这个位置CloseHandle(hHandle)吗
}
要看你是不是用这个句柄了,如果不适用,
直接在 for循环里closehandle.
3.进程,线程,内核对象,filemapping, 还有文件也是要关闭的,比如:createfile
1. 不会吧,没听说啊
[其他解释]
1. 不用
2. CloseHandle(CreateThread(...));
[其他解释]
create 和 close 应该一一对应
[其他解释]
我想应该不需要吧
[其他解释]
哈哈,好久没声音了,莫非这就是大阪的个人肖像???
[其他解释]
天天都能看见老大在回复的。。。
[其他解释]
我是来看版主的。