【发布时间】:2011-06-13 13:59:03
【问题描述】:
有一次,在测试期间,我的 C++Builder / Delphi 应用程序在后台工作线程中引发了未捕获的异常。正如我所料,EurekaLog 捕获了异常并发送了错误报告,一切似乎都很好。
但是,当我关闭应用程序的主窗口时,某些东西仍在后台运行,因为该应用程序仍然列在任务管理器中(并且仍然有资源打开)。
我试图通过在后台工作线程中故意引入各种错误来复制这个问题,但我做不到。
什么会导致线程和应用程序继续这样运行,即使在主窗口关闭之后(并且可能已经调用了 PostQuitMessage)?
如何确保应用程序始终干净关闭?
【问题讨论】:
-
您是否有任何可能无限阻塞的 EnterCriticalSection 代码?这是一个非常常见的死锁,可以在关机时解决,就在那里。
标签: windows multithreading delphi c++builder shutdown