![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Denchik |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 16.5.2006 Репутация: нет Всего: нет |
Есть такой код в котором создается поток ,
потом мы должны его убить при любых обстоятельствах через какое-то время
помогите переделать вот такую функцию , расчитанную на аналогичную задачу , только запускающая внешнюю программу
|
||||
|
|||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
не лучше ли это делать в потоке?
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
убивать поток(TThread в данном случае) не стоит, ибо приведет скорее всего к утечке ресурсов.
лучше выставлять флаг (Terminate-Terminated) и его в самом потоке анализировать. -------------------- There are always someone smarter than you... |
|||
|
||||
| Denchik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 16.5.2006 Репутация: нет Всего: нет |
Меня интересует что-то типа этого кусочка
То есть смысл убрать поток , если прошло какоето достаточно большое время после запуска потока |
|||
|
||||
| Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 3 Всего: 7 |
Что-то я не понял. Ты создаешь TThread, а в примере у тебя CreateProcess. Это разные вещи.
Как тебе говорят просто мониторь в потоке Terminated по-другому его не убить. А так отработает Execute и конец потоку. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
| Denchik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 16.5.2006 Репутация: нет Всего: нет |
Пример с функцией для запуска программ и их завершением через таймаут
Мне нужен для ситуаций когда поток виснет ( изредка бывает ) Получается нужно прикрутить WaitforSingleObject , чтобы он опрашивал поток А как мониторить поток ? с таймером ??? |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
код потока - твой? так что, отладить что там "виснет" чтоли нельзя? да, поток (в терминологии ОС) как и процесс убить можно. но тут(в случае с потоком) ты на 99% получишь утечку ресурсов (ибо в случае с процессом система сама почти весь "мусор" подчищает). если тебе это не критично, то убивай на здоровье - TerminateThread з.ы. вариант - сделать отдельный процесс(вместо потока) и мониторить его. будет более логичным имхо для избежания утечки ресурсов. Это сообщение отредактировал(а) MetalFan - 13.5.2008, 13:14 -------------------- There are always someone smarter than you... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |