![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Alca |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
_beginthreadex: как правильно убить поток? Т.е. необходимо грубое завершение треда (KillThread).
MSDN:
Т.е. рекомендуется использовать _endthreadex вместо других вариантов (TerminateThread, ...).
Поток не убивается. |
||||
|
|||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 8 Всего: 154 |
endthreadex завершает тот поток, в котором вызвана, а строчка
говорит нам о том, что это эквивалентно return
|
||||
|
|||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
Значит надо прибивать функцией TerminateThread....
Добавлено через 12 минут и 4 секунды
А почему ExitThread не срабатывает? |
|||
|
||||
| Alca |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
Что значит "Ends the calling thread."? |
||||
|
|||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
ExitThread убивает текущий поток
Добавлено через 1 минуту и 37 секунд тема про убийство потока недавно уже была, зачем еще одна? используй SetThreadContext чтоб передать управление на _endthread |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
т.е. убивает тот поток в котором он вызван (мысли вслух). |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 8 Всего: 154 |
||||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
Lazin,
они при _endthread полюбому не отработают, если они есть. тогда надо искать место на котором виснет поток и передавать управление сразу после него, например через исключение
Это сообщение отредактировал(а) GoldFinch - 18.5.2009, 17:32 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 2 Всего: 33 |
GoldFinch, И какой аргумент в этом случае получит catch ?
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 8 Всего: 154 |
почему-бы не воспользоваться нормальным способом завершения потоков? мне почему-то за все время работы не приходилось страдать подобной ерундой
с чего это вдруг? Добавлено через 37 секунд lol, ты так шутишь? Добавлено через 3 минуты и 19 секунд GoldFinch, мне интересно, где ты прочитал о том, что проект собирается в VS и компилируется с опцией /Eha? Добавлено через 4 минуты и 40 секунд в любом случае подобные финты это UB, как программа будет работать... одному богу известно |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
в конце концов, можно руками поставить SEH
и никакого UB тут нет, для системы это нормально (а система вполне конкретная - windows) Это сообщение отредактировал(а) GoldFinch - 18.5.2009, 21:16 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |