![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| v258 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 19.7.2005 Где: Краснодарский кра й Репутация: 2 Всего: 2 |
Есть основной и дополнительный потоки. Дополнительный поток выполняет определенную работу и завершается. Однако при завершении работы основного потока желательно корректно завершить дополнительный, если он еще существует. С этим проблем нет: Thread.Terminate и Thread.WaitFor Вопрос: как можно достоверно определить, существует ли сейчас дополнительный поток, чтобы вызвать эти методы при необходимости? Или их можно вызывать в любом случае, даже если потока уже нет?
|
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
запоминать ссылку на доп.поток...
других вариантов нет) либо забить на "корректное завершение" ибо системе уже все-равно будет после завершения процесса -------------------- There are always someone smarter than you... |
|||
|
||||
| v258 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 19.7.2005 Где: Краснодарский кра й Репутация: 2 Всего: 2 |
||||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: нет Всего: 23 |
С запуском дополнительного выстави какой-либо глобальный флаг. По завершении основного проверяй этот флаг.
А вообще это ты назвал так "основной" и "дополнительный" или это потоки процесса в первоначальном их смысле? Если процесса - то как может основной закончится ранее дополнительного? |
|||
|
||||
| v258 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 19.7.2005 Где: Краснодарский кра й Репутация: 2 Всего: 2 |
При запуске программы основной поток запускает дополнительный поток (thread), который через определенное время завершается с сохранением полученных данных. Дело не в том, что основной может кончиться раньше - мне нужно при выходе из программы проверить существование дополнительного потока, и если он еще существует, то дать ему возможность корректно завершиться.
ОК, попробую через глобальный флаг. Это сообщение отредактировал(а) v258 - 29.4.2007, 06:17 |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 6 Всего: 121 |
Проверь валидность его хэндла, если он отработает, то handle уничтожится, в противном случае пока объект поток работает и его handle небыл специально тобою закрыт, то по наличию хэндла в таблице объектов можно судить и о существовании такого объекта.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| v258 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 19.7.2005 Где: Краснодарский кра й Репутация: 2 Всего: 2 |
Всем спасибо
|
|||
|
||||
![]()
|
| Правила форума "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. |