Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Потоки [D7, WinXP]


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо