crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> processEvents() & quit()
igor_bogomolov
  опции профиля:
сообщение 18.5.2009, 11:59
Сообщение #1


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Привет всем.
Столкнулся с проблемкой, что-то не пойму как решить.

При старте программы, в основном потоке вызывается длительная функция ~40c (она прогружает платы с ADSP). В силу некоторых причин, не хотелось бы выносить ее в дополнительный поток. Для того чтобы Gui не блокировался, периодически вызывается qApp->processEvents().
void ThreadScan::exeLoader(const QString& modules, const QString& loadFile) {
    forever {
        .....
        qApp->processEvents();
    }
}
Есть QAction связанный с QCoreApplication::quit ()
connect(actionExit, SIGNAL(triggered()), qApp, SLOT(quit()));
Так вот, если в процессе выполнения exeLoader высылается quit, программа не завершается, как мне хотелось бы. Завершится только тогда, когда выйдет из exeLoader.

Возможно ли это обойти, не вынося функцию в доп. поток?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
kwisp
  опции профиля:
сообщение 18.5.2009, 12:38
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


igor_bogomolov,
в каком случае вызывается exeLoader ???
в каком месте программы она вызывается, случаем не до входа в основной цикл обработки событий?


Цитата(igor_bogomolov @ 18.5.2009, 12:59) *
высылается quit,

вот это еще не понятно, высылается вроде бы triggered
т.е. соединение срабатывает во время а программа закрывается только после завершения функции exeLoader

так???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


15 чел. читают эту тему (гостей: 15, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.12.2024, 18:12