HANDLE threadhandle = CreateThread(NULL, 0, RecvThreadProc, NULL, NULL, NULL); CloseHandle(threadhandle);第5个传参数,第4个线程处理函数
当你CreateThread的时候
会返回一个HANDLE这个HANDLE 你可以控制这个线程 比如
TerminateThread 结束进程啊
SetThreadPriority 设置线程优先级
SuspendThread 挂起线程
WaitForSingleObject
等等...这些API 都是需要这个HANDLE作为参数的
现在说重点。
1 当你用不上我上面说的API(当然 我列出来的API 不全..有很多的.)去操作线程.
CreateThread以后 直接CloseHandle即可。
2 当你用到上面的说的API 你绝对不能CloseHandle.. 你可以在用完上面的API 再CloseHandle.
3 内存泄露没那么严重吧。(这个也扯不上内存泄露吧。) 只是你不CloseHandle 这个句柄会占用系统一点资源(这个资源 照目前CPU 和 内存 几乎 微乎其微的.),说白了 你CreateThread 创建1000个线程 你不CloseHandle 完全没任何事。进程有句柄链 当进程结束时 系统会自己CloseHandle.
4 总结一下。 当CreateThread成功后,返回线程的句柄,如果你对这个句柄没有其他用途,请直接CloseHandle,如果你对这个句柄有其他用途,请在用完以后 在CloseHandle.
5 CloseHandle 只是关闭这个句柄 对线程执行 是无任何影响的。CloseHandle以后 线程还是会继续运行。
6 还是不懂 请完全参照4.