Здравствуйте, гость ( Вход | Регистрация )
|
igor_bogomolov |
18.5.2009, 11:59
Сообщение
#1
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29
|
Привет всем.
Столкнулся с проблемкой, что-то не пойму как решить. При старте программы, в основном потоке вызывается длительная функция ~40c (она прогружает платы с ADSP). В силу некоторых причин, не хотелось бы выносить ее в дополнительный поток. Для того чтобы Gui не блокировался, периодически вызывается qApp->processEvents(). Есть QAction связанный с QCoreApplication::quit () Так вот, если в процессе выполнения exeLoader высылается quit, программа не завершается, как мне хотелось бы. Завершится только тогда, когда выйдет из exeLoader.Возможно ли это обойти, не вынося функцию в доп. поток? |
|
|
|
![]() |
|
kwisp |
18.5.2009, 14:06
Сообщение
#2
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
SABROG,
ставлю 1р на то что не получится ибо было бы несправедливо по отношению к exit(0); |
|
|
|
|
SABROG |
18.5.2009, 14:11
Сообщение
#3
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34
|
Цитата(kwisp @ 18.5.2009, 15:06) Link SABROG, ставлю 1р на то что не получится ибо было бы несправедливо по отношению к exit(0); Скорее всего ты прав. На сколько я помню слот quit() ставит в очередь event, который может обрабатываться позже. Тогда стандартную ::exit(0) пробовать, хотя мне кажется это некорректным. А вообще не понятно. Предположим юзер нажал на крестик, обработался слот closeEvent. В этом слоте выставляем флаг типа "все, Вась! Вылазим." Этот флаг проверяется в цикле forever(), из которого выходим по return или по break. Ну и все, фенита ля комедия. Сообщение отредактировал SABROG - 18.5.2009, 14:16 |
|
|
|
igor_bogomolov processEvents() & quit() 18.5.2009, 11:59
kwisp igor_bogomolov,
в каком случае вызывается exeLoad... 18.5.2009, 12:38
igor_bogomolov Цитата(kwisp @ 18.5.2009, 13:32) в каком ... 18.5.2009, 12:59
kwisp а
void QCoreApplication::exit ( int returnCode = 0... 18.5.2009, 13:19
igor_bogomolov Попробовал. Тоже самое, к сожалению.
Приложение... 18.5.2009, 13:32
SABROG Если так попробовать?
QMetaObject::invoke... 18.5.2009, 13:59
igor_bogomolov Цитата(SABROG @ 18.5.2009, 14:59) QMetaOb... 18.5.2009, 14:17
kwisp Цитата(SABROG @ 18.5.2009, 15:11) Тогда с... 18.5.2009, 14:19
igor_bogomolov Цитата(SABROG @ 18.5.2009, 15:11) А вообщ... 18.5.2009, 14:25![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 15.12.2025, 20:56 |