我理解直接终止线程(通过 AfxEndThread 或其他方式)的问题,并且我已经看到使用 CEvent 对象向线程发出信号然后让线程自行清理的示例。我遇到的问题是,使用 CEvent 向线程发出信号似乎需要一个循环,您可以在其中检查线程是否在循环结束时发出信号。问题是,我的线程没有循环。它只是运行,处理过程可能需要一段时间(这就是我希望能够停止它的原因)。
另外,如果我只是终止线程,我意识到我分配的任何东西都没有机会自行清理。在我看来,我一直在使用的任何本地人碰巧把东西放在堆上也将无法清理自己。是这样吗?
最佳答案
这里没有 secret 的魔法知识。
只需在整个函数代码中定期检查事件对象,您认为可以安全退出的地方。
关于c++ - 停止 MFC 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1915739/