关闭线程方法

时间:2014-03-29 20:13:19

标签: c multithreading winapi

之间有什么区别
ExitThread(exitcode);

CloseHandle(threadHandle);

他们似乎做了同样的事情,但他们必须有所不同。

1 个答案:

答案 0 :(得分:3)

这些功能做了很多不同的事情。 ExitThread立即结束调用线程。 CloseHandle只是破坏句柄,从而删除对线程对象的引用。它对手柄关闭的线程没有影响;线程将继续正常执行。通常,线程句柄在线程完成后关闭(例如,在等待WaitForSingleObject完成之后)。但有时,句柄会因仍在运行的线程而关闭;它通常被称为分离线程。如果应用程序“忘记”线程并且不等待其完成,则需要执行此操作;应该关闭这种线程的句柄,让内核在线程完成时自动销毁相关资源。

另请参阅类似问题的答案:Windows C++ - closing thread with CloseHandle