我使用CreateThread
函数创建了一个ThreadA。在ThreadA内部,另一个线程,ThreadB是使用CreateThread
函数创建的。
现在,我想从ThreadA终止ThreadB,但TerminateThread
函数失败。
是否因为ThreadA可能无权终止ThreadB?我真的很困惑这种情况。
答案 0 :(得分:1)
一般情况下,永远不要使用TerminateThread
因为你可以保留锁定并导致各种问题。 As MSDN says:
你可以做的是让你的线程在一个事件对象上等待,你可以用它来发出另一个线程的终止信号。
如果您需要在某些正常的线程处理中定期检查终止信号,可以将等待超时设置为零,这样您的线程在等待终止时仍然可以正常工作。
示例位于this SO answer here。