Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Невинно убитые thread-ы...

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
March
Гость





СообщениеДобавлено: Пт Окт 12 2001 11:13    Заголовок сообщения: Невинно убитые thread-ы... Ответить с цитатой

Народ! Подскажите, как убить thread в Win32?
Дело в том, что если использовать TerminateThread, то до конца его ресурсы не убиваются и если после этого еще раз создавать, а потом убивать, то через 2000 раз (вычислено эксперементальным путем) thread больше не создастся...
Как быть?
Вернуться к началу
aus
Гость





СообщениеДобавлено: Пт Окт 12 2001 11:45    Заголовок сообщения: Re: Невинно убитые thread-ы... Ответить с цитатой

Попробуй ExitThread(Code),
где Code - код выхода, смотри справку по MS SDK
Вернуться к началу
March
Гость





СообщениеДобавлено: Пт Окт 12 2001 11:52    Заголовок сообщения: Re: Невинно убитые thread-ы... Ответить с цитатой

ExitThread должен вызваться в thread-е, а мне надо убивать его снаружи...
Вернуться к началу
Beguin
Гость





СообщениеДобавлено: Пт Окт 12 2001 22:31    Заголовок сообщения: Гы-гы-гы - March... Ответить с цитатой

Ты ли это?
А вообще в приснопамятном MSDN так и написано. Английским по белому: TerminateThread is used to cause a thread to exit. When this occurs, the target thread has no chance to execute any user-mode code and its initial stack is not deallocated.
Следльтно умирает у тебя куча потихоньку. Вот. Завершай тред нормально и не надо вот этого... убийства, кровь, DM4...

Да, и CloseHandle можно для развлечения вызвать.
Вернуться к началу
march
Гость





СообщениеДобавлено: Сб Окт 13 2001 15:34    Заголовок сообщения: Re: Гы-гы-гы - March... Ответить с цитатой

Ага, а MSDN я не читаю и обо всем знаю только по наслышке Smile))
Но ведь должен же быть легальный способ _полноценно_ прибить тред!!! Или опять Билл кинул?...
А завершить тред нормально... Не всегда это удобно...
Вернуться к началу
Beguin
Гость





СообщениеДобавлено: Пн Окт 15 2001 13:51    Заголовок сообщения: Есть. Но некрасивый :) Ответить с цитатой

А ты хошь, как всегда, универсальный способ, да чтобы работал. Тут такая мысль по этому поводу: если бы у MS все "сошлось" и была бы возможность, я думаю, они бы убивали кучу треда по TerminateThread. Но, видать, не судьба. Так что... делай как все во всех учебниках, через глобальные, по отношению к функции процесса, переменные Smile
Вернуться к началу
Андрей



Зарегистрирован: 10.04.2002
Сообщения: 47

СообщениеДобавлено: Ср Окт 17 2001 14:03    Заголовок сообщения: Re: Невинно убитые thread-ы... Ответить с цитатой

Извращенец
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Yazon dinAlt
Гость





СообщениеДобавлено: Вт Окт 30 2001 16:10    Заголовок сообщения: Re: Невинно убитые thread-ы... Ответить с цитатой

попробуй с помощью событий
когда нужно удалить поток, установи/сбрось событие, а в функции потока вызови return
-return, как пишет Д. Рихтер, лучший способ выхода из потока.
Вернуться к началу
DiamonDZx



Зарегистрирован: 09.12.2002
Сообщения: 2

СообщениеДобавлено: Пн Дек 09 2002 13:26    Заголовок сообщения: Re: Невинно убитые thread-ы... Ответить с цитатой

есть один способ, он он работает не всегда ...
нужно вызвать в потоке исключение, а затем самому его обработать, этот способ не сработает , если поток сам обработает это исключени.
Вызвать исклбчение можно если, например , открыть контехт потока и указатель на текущую исполняемую область памяти(EIP на x86)поставить на защищённую область памяти, например на 0.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...