![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Потоки [D7, WinXP]
Ypbi4 © (2007-10-30 08:11:00)Ситуация следующая -
По таймеру через определенный промежуток времени запускаю поток, по окончании операций он убивается. Подскажите plz, как узнать запущен ли поток? (Suspended не пойдет, т.к. поток убивается и получить его свойства нельзя)
Ypbi4 (2007-10-30 08:43:00) [21]При запуске потока прописываю свойство
cl.FreeOnTerminate:=true - по окончании процесса он самоуничтожится.
cl - имя потока
сделал проверку так
if cl <> nil then statusbar1.panels[1].text:='поток в работе' else
Begin
cl:=TScan.Create(true);
cl.Resume;
cl.Priority:=tpLower;
cl.FreeOnTerminate:=true; //прописывал так же свойство и в классе потока
statusbar1.panels[1].text:='поток запущен';
end;
Теперь он первый раз запускается, если ранее не был запущен все выполняет и должен самоуничтожиться, но почему то он при следущей проверки пишет что 'поток в работе', т.е. cl<>nil, хотя поток на самом деле не запущен.. :(
Сергей М. (2007-10-30 08:25:00) [22]
> как узнать запущен ли поток?
Если ты его успешно "запустил", то значит он "запущен", что тут еще узнавать ?
> по окончании операций он убивается
Кем ?
MBo (2007-10-30 08:22:00) [23]при завершении потока инициировать событие OnTerminate