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