我有一个线程,有时会因为DLL调用没有返回而冻结(我怀疑)。在一般情况下,如果您调用像Indy这样的阻塞例程,是否有一种从中恢复的方法,以便线程OnTerminate处理程序触发?如果我调用TerminateThread,会发生这种情况吗?
我有一个线程,有时会因为DLL调用没有返回而冻结(我怀疑)。在一般情况下,如果您调用像Indy这样的阻塞例程,是否有一种从中恢复的方法,以便线程OnTerminate处理程序触发?如果我调用TerminateThread,会发生这种情况吗?
TerminateThread()
是一种立即的强制终止方法,它不会触发 OnTerminate
事件。只有当线程的 Execute()
方法通过正常方式退出时(无论是优雅地退出还是引发未捕获异常(这将设置线程的 FatalExpection
属性)),OnTerminate
才能触发。