c++ - 停止 MFC 线程

标签 c++ mfc multithreading

我理解直接终止线程(通过 AfxEndThread 或其他方式)的问题,并且我已经看到使用 CEvent 对象向线程发出信号然后让线程自行清理的示例。我遇到的问题是,使用 CEvent 向线程发出信号似乎需要一个循环,您可以在其中检查线程是否在循环结束时发出信号。问题是,我的线程没有循环。它只是运行,处理过程可能需要一段时间(这就是我希望能够停止它的原因)。

另外,如果我只是终止线程,我意识到我分配的任何东西都没有机会自行清理。在我看来,我一直在使用的任何本地人碰巧把东西放在堆上也将无法清理自己。是这样吗?

最佳答案

这里没有 secret 的魔法知识。

只需在整个函数代码中定期检查事件对象,您认为可以安全退出的地方。

关于c++ - 停止 MFC 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1915739/

相关文章:

c++ - 必须使用 'class' 标记来引用此范围内的类型 '____'

c++ - 如何调试 regasm(注册哪些类型)

c++ - 有什么方法可以知道目录是否包含子目录?

c++ - Microsoft Word 连接点接收器示例/MFC 出现问题

C++ 多线程 - 线程安全代码

c++ - 为什么我的 Win32(c++, visual studio 2013) 窗口没有出现?

c++ - IDXGISwapChain::ResizeBuffers() 0x887a0001 DXGI_ERROR_INVALID_CALL

c++ - MFC 功能区面板名称问题

java - 多线程线程重启

multithreading - PostMessage 在线程中返回 "invalid window handle"