Russian Qt Forum

Qt => Многопоточное программирование, процессы => Тема начата: Caduceus от Январь 27, 2012, 10:27



Название: Не приходит QProcess::finished
Отправлено: Caduceus от Январь 27, 2012, 10:27
У меня запускается поток, который в цикле запускает какие-то задачи. Вот одна из задач может быть запуск сторонней программы. Но надо ждать когда она закончится, чтобы сделующую задачу запустить.
Коннекчусь к сигналу finished этого процесса, чтоб поймать момент когда она закончится. Но этот сигнал почему-то не приходит. Напримре, если запустить Блокнот и ждать когда он закроется, то по закрытии не приходит finished.

Вот как коннечусь
Код:
connect(tmpProcess, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processClosed(int,QProcess::ExitStatus)));

Что я не так делаю? Может дело в том, что запускатеся в отдельном потоке?


Название: Re: Не приходит QProcess::finished
Отправлено: Bepec от Январь 27, 2012, 12:32
А вы случаем незнаете, ваше QProcess::ExitStatus не int случаем?

А заменить эти глубокие ***
Код:
connect(tmpProcess, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processClosed(int,QProcess::ExitStatus)));
на
Код:
connect(tmpProcess, SIGNAL(finished(int, int)), this, SLOT(processClosed(int, int)));


Попробуй, мб тогда заработает? :)


Название: Re: Не приходит QProcess::finished
Отправлено: Caduceus от Январь 27, 2012, 13:34
Не, все дело в потоках оказалось. Пришлось извернуться и сделать все в основном потоке так, чтоб GUI не тормозило.


Название: Re: Не приходит QProcess::finished
Отправлено: Igors от Январь 27, 2012, 13:44
Не, все дело в потоках оказалось. Пришлось извернуться и сделать все в основном потоке так, чтоб GUI не тормозило.
В чем же оказалось? Разве нельзя запускать др приложение из НЕ главной нитки?


Название: Re: Не приходит QProcess::finished
Отправлено: Bepec от Январь 27, 2012, 15:30
Можно с других запускать. И сигнал приходит нормально. ^^