Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.039 c
15-1164019231
alex-drob
2006-11-20 13:40
2006.12.10
Раздача интернет трафика по сети на Delphi


4-1153839437
cando
2006-07-25 18:57
2006.12.10
прослушивание линии


15-1163879327
MsGuns
2006-11-18 22:48
2006.12.10
Готовое решение


1-1161939238
StriderMan
2006-10-27 12:53
2006.12.10
Цвет точек сетки


2-1164136349
tototo
2006-11-21 22:12
2006.12.10
Array of Char





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский