![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| ButtonOFF |
|
|||
|
улетевший ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Скажите пожалуйста, такая ситуация, поток ждет до бесконечности в WSAWaitForMultipleObjects, пытаясь его закрыть TThread.Terminate и потом дождаться закрытия TThread.WaitFor я остаюсь висеть вместе с ним. В Си шарпе для таких ситуаций есть даже 2е функции. Думал в делфи есть что-то подобное, но перерыв не мало доков ничего не нашел. Как в такой ситуации быть?
Есть вариант сделать вместо WSA_INFINITY что-то типа 1000, но все таки может есть другой вариант? Это сообщение отредактировал(а) ButtonOFF - 27.11.2012, 18:07 |
|||
|
||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 5 Всего: 63 |
Что за они? -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 7 Всего: 41 |
Если уж совсем никак то TerminateThread.
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
если вызывается с fWaitAll = False то можно добавить в массив передаваемый в WSAWaitForMultipleEvents событие, которое сигналить при необходимости завершить тред
-------------------- Обижено школьников: 8 |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 22 Всего: 128 |
Вполне себе нормальный вариант, имхо. -------------------- There are always someone smarter than you... |
|||
|
||||
| ButtonOFF |
|
||||
|
улетевший ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Illusion Dolphin,
Thread.Interrupt и Thread.Abort bems,
думал об этом, и решил в сторону таймаута в 1 сек и проще и в массив ивентов будет на 1 побольше) все таки ограничение в 64 не оч много. Чучмек, тред должен выполнить очистку перед уничтожением (закрыть сокеты и тд), так бы вообще не заморачивался В общем всем спасибо за советы, проблема в принципе надуманная |
||||
|
|||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 22 Всего: 128 |
В догонку: совсем не обязательно перед TThread.Free вызывать WaitFor.
-------------------- 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. |