Главная страница
    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
3-1159775522
VALUA
2006-10-02 11:52
2006.12.10
Копирование базы BASA.GDB в другую папку


15-1164013021
palva
2006-11-20 11:57
2006.12.10
Ода во славу пиратства


3-1160117027
Dima L
2006-10-06 10:43
2006.12.10
Проблема с AdoTAble


15-1164169616
Tab
2006-11-22 07:26
2006.12.10
защита данных в базе


2-1164467384
Strate
2006-11-25 18:09
2006.12.10
Непонятный Access Violation...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский