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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.