首先,让我首先说明,我理解从一个线程外部调用TerminateThread的所有危险,而不是通过信号告诉线程自行退出&等待那件事发生。
我的问题是,我可以在应用退出之前调用TerminateThread。 100%保证应用程序将在此刻退出。在这种情况下,我是否有发生内存泄漏的风险?或者任何阻止我在这种特殊情况下调用API的东西?
PS。我想调用它来让应用程序退出更快。这个解释太长了,但我需要这个应用程序在某种条件下尽快退出。 (该应用程序是一个屏幕保护程序,一旦用户移动鼠标就应该关闭。)
答案 0 :(得分:2)
TerminateThread
可能会让事情变得更糟,因为那将是孤立的关键部分(如果你真的不走运,它将是堆关键部分或加载器关键部分)。如果你真的想尽快摆脱躲闪,只需TerminateProcess
自己。请注意,这会绕过所有DLL_PROCESS_DETACH
和全局析构函数,但您确实说过想要尽快退出。