Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.10;
Скачать: CL | DM;

Вниз

Как узнать создана ли нить   Найти похожие ветки 

 
KyRo   (2006-11-24 12:36) [0]

Подскажите как узнать создана ли нить ?

То есть поток может быть создан и работать , а может быть и не создан.
Работает это все в таймере и нужно для того что бы не создать его еще раз если он уже создан.

Suspended почему то при запуске всех потоков и их 100% завершении работы (Terminate или  Suspend) Выдает на первый поток что он завершился , а на второй что нет !!!

Подскажите как лучше решить эту проблему ?


 
Сергей М. ©   (2006-11-24 12:39) [1]


> поток может быть создан


Кем ? Тобой ?


 
KyRo   (2006-11-24 12:40) [2]

Да мной


 
zdm ©   (2006-11-24 12:40) [3]

c TThread всегда одна и та же проблема-отсекать момент запуска и отслеживание времени жизни, т.е.  "родил-отследил-убил"


 
clickmaker ©   (2006-11-24 12:41) [4]


>  [2] KyRo   (24.11.06 12:40)
> Да мной

так а в чем проблема? Сам создаешь, значит знаешь момент создания


 
KyRo   (2006-11-24 12:44) [5]


> zdm ©   (24.11.06 12:40) [3]
> c TThread всегда одна и та же проблема-отсекать момент запуска
> и отслеживание времени жизни, т.е.  "родил-отследил-убил"


Вот это мне и надо !!
У меня планировщик который запускает потоки для обработки файла сценария их работы.
В зависимости размера сценария работа потоков может быть большая и измерятся часами.
Таймер тем временем должен проверять запущены ли эти потоки и в случае если нет и есть еще задания (новые или время выполнения которых подошло)
запустить снова потоки на выполнения .
И вот я не знаю как мне проверить запущены ли эти потоки уже что бы небыло непредсказуемых ситуаций


 
zdm ©   (2006-11-24 12:50) [6]

В отличии от Анатолия(без обид естественно к нему) я храню ссылки. Мне в своё время помогла
http://www.delphimaster.ru/articles/panov/


 
Сергей М. ©   (2006-11-24 12:52) [7]


> KyRo   (24.11.06 12:40) [2]


Раз ты создал поток, значит он гарантированно существует.
Вплоть до момента его уничтожения тобой.

Заметь, что завершение потока и уничтожение потока - вещи разные.


 
KyRo   (2006-11-24 13:05) [8]


> Раз ты создал поток, значит он гарантированно существует.
>
> Вплоть до момента его уничтожения тобой.


Так вот как мне узнать что он гарантировано закончил свою работу.
Писать из потока куда нибуть о его статусе?


 
Anatoly Podgoretsky ©   (2006-11-24 13:09) [9]

> KyRo  (24.11.2006 12:44:05)  [5]

Ты меняешь постановку, теперь вопрос совсем другой

> запущены ли эти потоки

а был

> создана ли нить


 
Anatoly Podgoretsky ©   (2006-11-24 13:11) [10]

> zdm  (24.11.2006 12:50:06)  [6]

Какие обиды, если ежедневно свыше 3000 сообщений, то храни или нет, все одно не найдешь. Один только delphimaster от 1500 до 3000 сообщений ежедневно.


 
Сергей М. ©   (2006-11-24 13:12) [11]


> Писать из потока куда нибуть о его статусе?


Ну зачем сразу что-то "писать" ?

У тебя есть планировщик, он создает объекты класса TThread, при этом он знает хэндлы созданных потоков. А раз знает хэндлы, то всегда может воспользоваться любой из ф-ций ожидания, например, [Msg]WaitForMultipleObjects


 
Anatoly Podgoretsky ©   (2006-11-24 13:15) [12]

> KyRo  (24.11.2006 13:05:08)  [8]

Теперь это уже третий вопрос

А есть еще состояние уничтожен.

Может ты все таки сформулируешь вопрос?



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

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

Наверх




Память: 0.49 MB
Время: 0.032 c
11-1128680360
shalex
2005-10-07 14:19
2006.12.10
Меню со стилем OfficeXP


2-1164482398
koha
2006-11-25 22:19
2006.12.10
Распознавание файлов?


15-1164018309
Rouse_
2006-11-20 13:25
2006.12.10
Я офигеваю с ГисМетео


2-1164276706
Fostr
2006-11-23 13:11
2006.12.10
Syntax Error (Missing operator) in Query expression


15-1163817022
Ппп
2006-11-18 05:30
2006.12.10
Посоветуйте программу