Вниз
Скачать: CL | DM;

Создание и завершение потока   Найти похожие ветки 

 
S@shka ©   (2004-10-30 23:45) [0]

Народ, вот помогите мне наконец въехать в следующий вопрос.
Есть оконное приложение, на Form.Create стоит создание потока
путем вызова BeginThread (...);
Далее насколько я понимаю, допустим поток завершил свою работу
мы уведомели главное окно, например, PostMessage (Form1.Handle...).
В обработчике вызываем CloseHandle (ThreadHandle); И все ок.
А что делать если подразумевается, что поток должен работать все время (вместе с приложением)и его завершение будет только при завершении работы всего приложения. Нужно ли на FormClose ставить ожидание выполнения потока? (например, с помощью мютекса). Достаточно ли просто проинформировать поток о том что он будет закрыт выставлением определенного флага?
Цитирую (Справочник по Дельфи Рей Лишнер) "Когда форма закрывается она прерывает поток. Возможно, что сообщение о завершении потока (если в потоке при выходе, после анализа флага завершения выставленного по FormClose делается PostMessage форме) придет после разрушения формы, но это не будет большой проблемой т.к. Windows уничтожит поток при завершении программы". А если у меня в функции потока созадются какие -то объекты будут ли они при этом корректно разрушены??? не понятно? или если код такого плана...
function ThreadFunc ();
var
T : TMyObject;
begin
T := TMyObject.Create;
while (TRUE) do
begin
 ....
 sleep (20000);
end;
T.Free;
PostMessage (Form1.Handle,WM_FINISHED,0,0);
end;
гарантировано ли разрушение T??? и не прифедет ли такой код к возможному подвисанию приложения при закрытии на время до 20 сек???
Спасибо!!


 
MaxDDinc   (2004-10-31 00:12) [1]

Любые объекты программы, в том числе и нити (процессы), будут разрушены при закрытии основного окна. Задержка в нити не приведет к зависанию программы, так как это отдельный от главного поток, которому выделяется свой квант времени для решения собственных задач



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.022 c
6-1091808188
2тэ10м
2004-08-06 20:03
2004.12.12
Трафик


1-1100472341
Maxim____
2004-11-15 01:45
2004.12.12
сохраниение record or class to binary


8-1094823919
debuger
2004-09-10 17:45
2004.12.12
Контраст и Яркость.


9-1092384941
pavel_pavel
2004-08-13 12:15
2004.12.12
Инвентарь в игре


14-1100244157
blackman
2004-11-12 10:22
2004.12.12
Исполнились мечты Думкина!




   Наверх