CloseHandle
2016-12-02 17:14
127 查看
1.为啥要在创建Handle后立马关闭;
首先我们都是在创建线程赋给一个句柄,然后立马结束句柄;
这是为啥?
1.线程和线程句柄不是一个东西,线程是在CPU上运行的,线程句柄是一个内核对象。我们可以通过句柄来操作线程;但是其生命周期不同。线程生命周期是从线程函数开始执行到return,而线程句柄的生命周期是从CreateThread到CloseHandle();
2.内核对象都是系统资源,用了要归还,也即用完后一定要关闭句柄,否则系统资源很快就要被用光。
3.如果在CreateHandle以后需要对这个线程进行一些操作,比如改变优先级,被其他线程等待,强制TermateThread等,就要保存这个句柄,使用完了在CloseHandle。如果创建线程之后不需要干预则直接CLosehandle就行了。
首先我们都是在创建线程赋给一个句柄,然后立马结束句柄;
这是为啥?
1.线程和线程句柄不是一个东西,线程是在CPU上运行的,线程句柄是一个内核对象。我们可以通过句柄来操作线程;但是其生命周期不同。线程生命周期是从线程函数开始执行到return,而线程句柄的生命周期是从CreateThread到CloseHandle();
2.内核对象都是系统资源,用了要归还,也即用完后一定要关闭句柄,否则系统资源很快就要被用光。
3.如果在CreateHandle以后需要对这个线程进行一些操作,比如改变优先级,被其他线程等待,强制TermateThread等,就要保存这个句柄,使用完了在CloseHandle。如果创建线程之后不需要干预则直接CLosehandle就行了。
相关文章推荐
- CreateThread成功后,紧接CloseHandle,
- closehandle
- C# 怎么实现 closeHandle
- CloseHandle()和ExitThread()区别
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- 创建线程后马上CloseHandle(threadhandle)的作用
- 为什么是Createthread后要CloseHandle
- CloseHandle()函数的使用
- CloseHandle()函数的使用
- 创建线程后马上CloseHandle(threadhandle)起什么作用
- CloseHandle()和ExitThread()区别
- Windows文件处理函数 - CloseHandle
- CloseHandle
- 线程的CloseHandle和WaitForSingleObject
- CloseHandle()函数的使用
- CloseHandle(),TerminateThread(),ExitThread()的区别
- CloseHandle(IntPtr handle)抛异常
- CloseHandle(),TerminateThread(),ExitThread()的区别
- CloseHandle(),TerminateThread(),ExitThread()的区别