LINUX.ORG.RU

[Qt3] Множество QCustomEvent'ов и замирание GUI


0

1

Дано: Есть довольно продолжительная операция (пусть это будет парсинг спец. файла), которая должна создать большое количество QListViewItem'ов. Для этого создается QThread, который отсылает формочке (qApp->postEvent) QCustomEvent, говорящий с какими данными надо создать item.

Имеем: При небольшом количестве (100-1000) евентов все отлично, но как только их становится гораздо больше (>15к), то GUI перестает обрабатывать действия пользователя, а только отрисовывает QListView.

Вопрос: Что с этим можно поделать, или что я делаю не так?

P.S. Перейти на Qt4 можете не предлагать: инструментарий выбираю не я.


незнаю как в 3 версии, попробуй QApplication::processEvents() или qApp->processEvents();

pozitiffcat ★★★
()

тем более вроде в отдельном потоке посылать реагирование на евенты бесполезно, все делать тупо в цикле где создаются эти item -ы

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

тем более вроде в отдельном потоке посылать реагирование на евенты бесполезно

Все взаимодействие гуя и потоков должно производиться через сигналы или евенты

все делать тупо в цикле где создаются эти item -ы

Раньше так и было, но программа имеет несколько MainWindow-ов и во время парсинга в одном окне остальные не должны замирать

Torvus
() автор топика
Ответ на: комментарий от pozitiffcat

вызов processEvents внутри обработчика евентов чревато бесконечной рекурсией

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

> Все взаимодействие гуя и потоков должно производиться через сигналы или евенты
Выкинуть сигнал, что данные обработаны, а потом забрать через какой-нибудь геттер?

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