В справке Delphi для TThread.OnTerminate
указано, что:
Метод, назначенный событию OnTerminate, выполняется в контексте основного потока, а не в контексте завершаемого потока.
Это даже тот случай, когда поток создается в другом потоке, чем основной поток?
Итак, вызывается ли OnTerminate
в потоке, который создал TThread
, или он вызывается в основном потоке? IDE не говорит мне об этом. Когда я отлаживаю, я не вижу активного потока в событии OnTerminate
. :-/
OnTerminate
потока и вижу, что его идентификатор потока равен 12888. И если я поставлю точку останова в какой-либо код графического интерфейса (например, обработчикOnClick
кнопки, обработчикOnCreate
основной формы, обработчик пункта меню и т. д. .) Я вижу, что основной поток графического интерфейса - 12888. Отсюда мой вывод... Ну, я думаю, вы догадываетесь! :) - person Andreas Rejbrand   schedule 20.01.2021