我有一个使用该CreateThread
函数创建的 ThreadA。在 ThreadA 内部,另一个线程 ThreadB 是使用该CreateThread
函数创建的。
现在,我想从 ThreadA 终止 ThreadB 但TerminateThread
函数失败。
是不是因为 ThreadA 可能无权终止 ThreadB?我真的对这种情况感到困惑。
我有一个使用该CreateThread
函数创建的 ThreadA。在 ThreadA 内部,另一个线程 ThreadB 是使用该CreateThread
函数创建的。
现在,我想从 ThreadA 终止 ThreadB 但TerminateThread
函数失败。
是不是因为 ThreadA 可能无权终止 ThreadB?我真的对这种情况感到困惑。
一般来说,永远不要使用,TerminateThread
因为你可以保持锁定并导致各种问题。正如 MSDN 所说:
你可以做的是让你的线程等待一个事件对象,你可以用它来表示另一个线程的终止。
如果您需要在某些正常线程处理中对终止信号执行定期检查,您可以将等待超时设置为零,以便您的线程在等待终止时仍然可以工作。
一个例子是在这个 SO answer here中。