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.

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


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

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

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




Репутация:   29  


Цитата(SABROG @ 18.5.2009, 15:11) *
А вообще не понятно. Предположим юзер нажал на крестик, обработался слот closeEvent. В этом слоте выставляем флаг типа "все, Вась! Вылазим." Этот флаг проверяется в цикле forever(), из которого выходим по return или по break. Ну и все, фенита ля комедия.
Так и собираюсь сделать. Только не через событие closeEvent (оно у меня и так переопределено. По нему приложение в трей сварачивается), а через свой слот.

Только абзац из Бланшет теперь уж больно смущает. Да и почему такое поведение троли заложили, для безопасности чтоли?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




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