Показать сообщение отдельно
  #2  
Старый 24.05.2011, 11:10
CarnoPhage CarnoPhage вне форума
Прохожий
 
Регистрация: 06.01.2008
Сообщения: 14
Репутация: 10
По умолчанию

Мтак, вопрос немного меняется, надеюсь я копаю в ту сторону, если нет, то скорее меня остановите, а то эта хрень будет использоваться в очень ответственной структуре.

Поток не выгружается, потому что стопорится на процедуре doTerminate.

Код:
procedure TThread.DoTerminate;
begin
  if Assigned(FOnTerminate) then Synchronize(CallOnTerminate);
end;

Если переписать процедуру под себя
Код:
...
procedure doterminate;Override;
...

procedure TMyThread.doterminate;
begin
  if Assigned(onTerminate) then onTerminate(self);
end;

То поток завершается и закрывается.

От сюда новый вопрос. Почему Synchronize внутри потока вешает этот поток?
Ответить с цитированием