Re[2]: Потоки
От: LA_  
Дата: 12.04.09 09:41
Оценка:
V> Что за метод такой? Я думал поток останавливается методом Suspend().
Думаю, что Вы уже поняли, что это такое :)
Это просто своя процедура, в которой останавливается поток.

V>
V>procedure UpdateDataDestroy();
V>begin
V>  with ThrIDDatUpdate do begin
V>    if ( not Terminated ) then TerminateAndWaitFor;
V>  end;
V>end;
V>

TerminateAndWaitFor моей Дельфи 7, увы, неизвестен.

V> Да, и помнится специально освобождать память выделенную под поток не обязательно, потому что после метода Execute автоматически вызывается стандартную процедуру Delphi EndThread(), которая вызывает функцию Win32 API ExitThread(), по завершении работы которой поток перестанет существовать и вся выделенная ему память будет корректно освобождена.

Если я не ошибаюсь, то это работает таким образом лишь тогда, когда поток запускается со свойством FreeOnTerminate := True; но в этом случае WaitFor не работает корректно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.