TerminateThread()在终止线程时返回错误

我有一个使用CreateThread函数创build的ThreadA。 在ThreadA中,另一个线程ThreadB是使用CreateThread函数创build的。

现在,我想从ThreadA中终止ThreadB,但TerminateThread函数失败。

是否因为ThreadA可能无权终止ThreadB? 我真的很困惑这种情况。

一般来说,不要使用TerminateThread因为你可以把锁保持下来并引起各种问题。 正如MSDN所说 :

MSDN

你可以做的是让你的线程等待一个事件对象,你可以使用这个事件来表示另一个线程的终止。

如果您需要在某些正常的线程处理中定期检查终止信号,可以将等待超时设置为零,以便线程在等待终止时仍可以继续工作。

这个例子就是在这里回答的 。