2013-11-12 1 views
4

Я пытаюсь реализовать поток, который работает в фоновом режиме, и обновляет индикатор выполнения каждую секунду или около того и следуя примеру в верхнем ответе Delphi - timer inside thread generates AV. Я замечаю, что предлагаемое решение имеет реализацию TThread.FinishThreadExecution. Моя IDE показывает, что моя версия delphi поддерживает этот метод, но мне не удалось найти какую-либо документацию (google отображает 10 обращений, ни одна из которых не помогает, http://docwiki.embarcadero.com/ не перечисляет этот метод в TThread. и когда она называется?Какова цель TThread.FinishThreadExecution и когда она называется?

ответ

7

FinishThreadExecution не метод наследуется от TThread базового класса. это всего лишь метод, реализованный в производном классе TTimerThread.

цель метода состоит в том, чтобы завершить выполнение нить надлежащим образом.

Все FinishThreadExecution is is to call Terminate, который устанавливает внутреннюю флаг в TThread, плюс устанавливает событие FTickEvent, чтобы разбудить поток. Затем будет выполняться метод выполнения потока, и поток будет самостоятельно разрушен, так как значение TThread.FreeOnTerminate истинно.

+1

Должно быть, я напечатал объявление на автопилоте - теперь я замечаю декларацию и точку ее вызова. Разве я не чувствую себя дураком сейчас. Спасибо, что поставил меня так быстро. – user2983114