TThread.FinishThreadExecution的目的是什么,什么时候被调用?

时间:2013-11-12 12:22:26

标签: multithreading delphi tthread

我一直在尝试实现一个在后台运行的线程,每隔一秒左右更新一个进度条,并按照Delphi - timer inside thread generates AV的最佳答案中的示例进行操作。我注意到建议的解决方案有TThread.FinishThreadExecution的实现。我的IDE显示我的delphi版本支持该方法,但我一直无法找到任何文档(谷歌出现了10次点击,没有一个帮助,http://docwiki.embarcadero.com/没有在TThread下列出该方法。什么是它,何时被称为?

1 个答案:

答案 0 :(得分:7)

FinishThreadExecution不是从TThread基类继承的方法。它只是在派生类TTimerThread中实现的方法。

该方法的目的是以适当的方式完成线程的执行。

所有FinishThreadExecution所做的就是调用Terminate,它在TThread中设置内部标志,并设置FTickEvent事件以唤醒线程。然后线程执行方法将结束并且线程将自毁,因为TThread.FreeOnTerminate为真。