我有一个最近崩溃的应用程序,我能够使用EurekaLog获取其callstack。我注意到的是,单元终结被调用,但应用程序没有关闭并继续工作。
AFAIK,仅在应用终止时调用终结部分。但那不是发生在我身上的事。
有人知道为什么在不应该这样做时调用终结方法吗?
修改
此应用不使用任何dll或bpls。
EDIT2
完成时线程是否可以调用finalization?
答案 0 :(得分:5)
在两个地方调用终结。最常见的是应用程序终止时。但是当卸载DLL(或BPL)时也可以调用它们,这在应用程序终止时自动发生,但如果代码明确卸载它,也可能在程序运行过程中发生。
这可能是发生了什么事吗?