Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: 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 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.052 c
1-1101799104
Progh
2004-11-30 10:18
2004.12.12
Сохранения TListView в виде HTML


3-1100590139
dron-s
2004-11-16 10:28
2004.12.12
По строчное выделение в таблице


1-1101472666
Vainu
2004-11-26 15:37
2004.12.12
Создание программ


14-1101266176
ИМХО
2004-11-24 06:16
2004.12.12
Динамо Киев - Рома Италия 2-0


4-1099031409
Shiza
2004-10-29 10:30
2004.12.12
Возможно ли если на одной линии находятся модем и телефон