我一直在尝试实现一个在后台运行的线程,每隔一秒左右更新一个进度条,并按照Delphi - timer inside thread generates AV的最佳答案中的示例进行操作。我注意到建议的解决方案有TThread.FinishThreadExecution的实现。我的IDE显示我的delphi版本支持该方法,但我一直无法找到任何文档(谷歌出现了10次点击,没有一个帮助,http://docwiki.embarcadero.com/没有在TThread下列出该方法。什么是它,何时被称为?
答案 0 :(得分:7)
FinishThreadExecution
不是从TThread
基类继承的方法。它只是在派生类TTimerThread
中实现的方法。
该方法的目的是以适当的方式完成线程的执行。
所有FinishThreadExecution
所做的就是调用Terminate
,它在TThread中设置内部标志,并设置FTickEvent
事件以唤醒线程。然后线程执行方法将结束并且线程将自毁,因为TThread.FreeOnTerminate
为真。