Название: Корректное завершение дочернего процесса под Windows Отправлено: Akon от Ноябрь 28, 2011, 11:27 По докам это QProcess::terminate. Но там по ходу косяк, нигде не посылается WM_QUIT, соответственно процесс, лишившись всех окон, остается жить.
Код: // Qt 4.7.4, file qprocess_win.cpp Корректное завершение в вашем коде Код: process.terminate(); // closing top level windows (WM_CLOSE) Название: Re: Корректное завершение дочернего процесса под Windows Отправлено: Bepec от Ноябрь 28, 2011, 12:05 А помоему корректное завершение дочернего потока должно осуществляться самим дочерним процессом. Не?
А то что вы делаете - это сдирание шкуры с живого процесса. Название: Re: Корректное завершение дочернего процесса под Windows Отправлено: Igors от Ноябрь 28, 2011, 12:20 А то что вы делаете - это сдирание шкуры с живого процесса. Ну иногда приходится и сдирать :)Я делал через WinAPI ::TerminateProcess (сначала ::OpenProcess). Правда проверял аж один раз - вроде прибивается. Название: Re: Корректное завершение дочернего процесса под Windows Отправлено: Akon от Ноябрь 28, 2011, 13:44 А помоему корректное завершение дочернего потока должно осуществляться самим дочерним процессом. Не? Процессу посылается последовательность сообщений, соответствующая именно корректному завершению. А кто посылает сообщения ОС (например, когда вы делаете Alt+F4) или другой процесс - фиолетово.А то что вы делаете - это сдирание шкуры с живого процесса. Резюмирую: WM_CLOSE + WM_QUIT - корректно. WM_CLOSE без WM_QUIT - содранная шкура с живого процесса (окон нет, а цикл сообщений крутится). WinAPI::TerminateProcess - выстрел в голову (крайняя мера, отстрел зависших процессов). Название: Re: Корректное завершение дочернего процесса под Windows Отправлено: thechicho от Ноябрь 28, 2011, 17:36 // выстрел в голову
http://lurkmore.ru/%D0%92%D1%8B%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%B8%D1%82%D1%8C_%D1%81%D0%B5%D0%B1%D0%B5_%D0%B2_%D0%BD%D0%BE%D0%B3%D1%83 (http://lurkmore.ru/%D0%92%D1%8B%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%B8%D1%82%D1%8C_%D1%81%D0%B5%D0%B1%D0%B5_%D0%B2_%D0%BD%D0%BE%D0%B3%D1%83) Название: Re: Корректное завершение дочернего процесса под Windows Отправлено: Bepec от Ноябрь 29, 2011, 08:26 Ну в Qt потоках/процессах терминате рубит сразу все. (насчет процессов полностью не уверен)
|