之间有什么区别
ExitThread(exitcode);
和
CloseHandle(threadHandle);
他们似乎做了同样的事情,但他们必须有所不同。
答案 0 :(得分:3)
这些功能做了很多不同的事情。 ExitThread
立即结束调用线程。 CloseHandle
只是破坏句柄,从而删除对线程对象的引用。它对手柄关闭的线程没有影响;线程将继续正常执行。通常,线程句柄在线程完成后关闭(例如,在等待WaitForSingleObject
完成之后)。但有时,句柄会因仍在运行的线程而关闭;它通常被称为分离线程。如果应用程序“忘记”线程并且不等待其完成,则需要执行此操作;应该关闭这种线程的句柄,让内核在线程完成时自动销毁相关资源。
另请参阅类似问题的答案:Windows C++ - closing thread with CloseHandle