Delphi 何时调用单元中的终结方法?

Delphi 何时调用单元中的终结方法?,delphi,delphi-2010,Delphi,Delphi 2010,我有一个应用程序最近崩溃了,我可以使用EurekaLog获取它的调用堆栈。我注意到的是,一个单元完成被调用,但应用程序没有关闭并继续工作 好的,只有当应用程序终止时才会调用终结部分。但那不是发生在我身上的事 有人知道为什么在不应该调用终结方法的情况下调用它吗 编辑 此应用程序不使用任何DLL或BPL EDIT2 线程完成后是否可能调用终结?在两个位置调用终结。最常见的情况是应用程序终止时。但是,当DLL(或BPL)被卸载时,它们也可以被调用,这在应用程序终止时自动发生,但是如果代码显式卸载它,也

我有一个应用程序最近崩溃了,我可以使用EurekaLog获取它的调用堆栈。我注意到的是,一个单元完成被调用,但应用程序没有关闭并继续工作

好的,只有当应用程序终止时才会调用终结部分。但那不是发生在我身上的事

有人知道为什么在不应该调用终结方法的情况下调用它吗

编辑

此应用程序不使用任何DLL或BPL

EDIT2


线程完成后是否可能调用终结?

在两个位置调用终结。最常见的情况是应用程序终止时。但是,当DLL(或BPL)被卸载时,它们也可以被调用,这在应用程序终止时自动发生,但是如果代码显式卸载它,也可以在程序运行的中间发生。
有可能就是这样吗?

没有。此应用程序不使用任何DLL或BPL。那么,要么您的EurekaLog报告本身有错误,要么您的代码在某个地方跟踪损坏的函数指针,并最终进入终结例程。因为除非装置的模块即将卸载,否则您永远不会合法地到达那里。请评论该行,查看问题是否仍然存在,如果是,则您的问题位于不同的位置,否则,您必须提供有关该功能的更多信息,通常尤里卡是对的……我试图重现这个问题将近两个小时,但到目前为止我什么也没有得到。如果你不能重现它,那么这个问题就毫无意义了<代码>终止发生在终止时间。@RafaelColucci如果您不够努力,很可能是您遗漏了一个特殊情况,请从零开始使用不同的方法,这是您尚未尝试过的done@DavidHeffernan为什么这个问题毫无意义?仅仅因为我不能重现错误,并不意味着问题不存在。或者,当客户打电话给您时,您无法再现错误,您会告诉他/她,他/她的电话毫无意义?