LINUX.ORG.RU

Проблема показа диалогов из разных потоков в QT


0

0

Всем привет!

У меня есть софтинка под Qt. В ней app и основное окно создается в главном потоке. Потом запускается дочерний. Он что-то делает и иногда должен показывать диалоги (из дочернего потока).

Если компилирую с QT_THREAD_SUPPORT и libqt-mt, происходит блокировка в exec() диалога (только когда делаю exec() из другого потока). Debugger показывает что происходит блокировка на внутренем мутексе в "dlg.exec() -> qApp->start_loop() -> qApp->processEvent()". Я понимаю, что главный app.exec() блокирует что-то, но это тупизм блокировать другие потоки.

Когда компилирую без QT_THREAD_SUPPORT все работает, но боязно как-то....

Что делать???

Игорь

anonymous

Как то ты интересно компилишь. Насколько я понял, все изложенное относится к собственным исходникам - так они у тебя вообще не должны компилится без QT_THREAD_SUPPORT - попросту qthread.h не должен подключаться. Или ты, пардон, чистый posix используешь для многопоточности?

Vinill
()

См. документацию.
По возможности, граф.вывод должен осуществляться только из одного (основного) потока.

ANDI
()
Ответ на: комментарий от ANDI

> См. документацию. Нашел. Они об этом пишут, хотя это маразм по-моему. Приходиться каждый раз слать eventы, а они работают медленно.

Игорь

anonymous
()
Ответ на: комментарий от anonymous

А может установить второе соединение с Х-сервером??? На ГТК+ такое б покатило.

cvv
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.