C++ 应用程序不会终止

Posted

技术标签:

【中文标题】C++ 应用程序不会终止【英文标题】:C++ application won't terminate 【发布时间】:2012-08-10 12:48:30 【问题描述】:

我有一个 C++ 应用程序,当它收到关闭命令时需要关闭它。收到此命令后,它应该终止所有线程,清理所有内容并优雅退出。

问题是我的应用程序没有关闭,它只是在收到命令时保持打开状态。

我认为问题在于收到关闭命令时我没有完成所有线程和句柄,但是由于我的应用程序非常大,我在定位哪个线程或句柄持有它时遇到问题起来。

有没有办法发现哪个线程或句柄没有完成?

PS:我在 Windows XP SP3 中使用 Visual Studio 2005。

【问题讨论】:

使用调试器。 Debug + Windows + Threads 查看正在运行的线程。悬停或双击一个以检查其堆栈。 在调试器中附加到进程并看看?但是,当您的主线程退出时,该进程应该终止,您确定这正在发生吗? 【参考方案1】:

我已经在调试中运行了我的应用程序,并使用线程窗口来查看谁没有被关闭。我已经更新了我的代码,现在一切正常。

谢谢大家的回答。

【讨论】:

以上是关于C++ 应用程序不会终止的主要内容,如果未能解决你的问题,请参考以下文章

C++多线程强制终止

如何制作一个不刷新 std::cout 的简单 C++ 程序

如何在应用程序退出()期间处理 Qthread 终止?

OpenCV、Python 和 C++:应用程序请求运行时以异常方式终止

我的 C++ 程序在内存不足时究竟是如何终止的?

C++多线程强制终止