Почему не убивается процесс запущенный QProcess? |
Здравствуйте, гость ( Вход | Регистрация )
Почему не убивается процесс запущенный QProcess? |
Rocky |
27.4.2010, 15:45
Сообщение
#1
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Всем привет. Подскажите плиз, как убить процесс когда нужно? Я делаю так
Музыка проигрывается... но вот когда нужно все остановить, ниче не получается.... Потому что у меня много раз происходит вызов play/stop и в очередном play при попытке начать процесс заново в консоль получаю "QProcess::start Process is already running". Как это можно исправить? Есть подозрение что убийство происходит не сразу, а через какое-то время, но большее чем 100 мс (потому что вызов play/stop происходит в таймере). Qt. 4.6.2., ОС Ububntu 9.10. Спасбо! |
|
|
Litkevich Yuriy |
27.4.2010, 18:24
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
приведённый тобою код довольно бессмысленный.
Ты командуешь "Завершить" и ничего не дожидаясь, пытаешься убить процесс. Смотри: bool QProcess::waitForFinished ( int msecs = 30000 ) |
|
|
Rocky |
30.4.2010, 14:17
Сообщение
#3
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
так нет почему бессмысленный? я просто сначала пробую его убить через terminate, а потом типа проверяю и если не убился - то пробую kill.
waitForFinished боюсь не подойдет... Мне нужно грубо говоря запускать процесс каждые 100мс. т.е. на 100-й мс - запустил, на 200-й - убил и тут же запустил заново... И так много раз. А получается что он не убивается совсем мгновенно, в итоге я видимо и получаю QProcess::start Process is already running.... Может сделать 2 процесса типа четный/нечетный? пока один убивается чтоб другой работал и наоборот? К тому же мне ничего нельзя блокировать - там графика отрисовывается, пользователь может думать что программа "подвисает".. |
|
|
Текстовая версия | Сейчас: 24.11.2024, 10:32 |