![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| vadimp56 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2010 Где: Москва Репутация: нет Всего: нет |
Здравствуйте.
У меня такая проблема: создаю в своей программе поток, он выполняет какие-то действия и завершается. Так вот, есть ли возможность отследить выход из этого потока, чтобы завершить программу. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
vadimp56
Поток завершается тогда, когда завершается его функция выполнения. Но я не совсем понял зачем это может понадобиться? |
|||
|
||||
| hawk3500 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 6.2.2009 Репутация: нет Всего: 2 |
Если Вы имеете ввиду ситуацию когда у вас многопоточное приложение и вы хотите при завершении выполнения определённого потока завершить процесс то есть несколько вариантов:
1) while(!!GetThreadId(Thread))Sleep(100); Exit(1); 2) При выходе из потока изменить глобальный флаг,а лучше Object а в основном потоке ждать WaitForSingleObject........ 3)Ну или не совсем корректно но можно: в конце дополнительного потока выполните ExitProcess; --------------------
воин dzen'a |
|||
|
||||
| Modul |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Истина. Ну, новичку все надо. Я реально применял завершение потока для выхода из цикла, используя break. --------------------
I'll be back ! |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| vadimp56 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2010 Где: Москва Репутация: нет Всего: нет |
Тут вот в чём дело.
У меня в программе создаётся поток, а уже в нём ещё два. Мне нужно отследить когда закроется один из них, а потом закрыть второй и вызвавший его поток. |
|||
|
||||
| миг |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 15.9.2008 Репутация: нет Всего: 1 |
вызвать функцию BOOL GetExitCodeThread(HANDLE, PDWORD), которая проверяет завершен ли поток..
--------------------
Oaks may fall when reeds stand the storm. |
|||
|
||||
| vadimp56 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2010 Где: Москва Репутация: нет Всего: нет |
А можно усыпить вызывающий процесс, чтобы он заработал по завершении одного из дочерних?
|
|||
|
||||
| alexvs11 |
|
|||
|
hell is here ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 21.8.2010 Репутация: 6 Всего: 10 |
vadimp56, сделать WaitForSingleObject( hThread ..
|
|||
|
||||
| vadimp56 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2010 Где: Москва Репутация: нет Всего: нет |
Спасибо. Буду пробовать.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |