![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
RazrFalcon |
![]()
Сообщение
#1
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Есть GUI который создает еще 2-а потока (всего ядер на компе 2-а).
При этом, потоки полностью самостоятельные, и посылают главному потоку только сигналы о прогрессе и когда нужно создать новое привью. Привью создается так: создается класс-виджет и добавляется в FlowLayout. Больше главный поток ничего не делает. Но, при работе потоков, GUI пользоваться не возможно. Он тупо не откликается на нажатия. Хотя через время все таки реагирует. Вопрос: как увеличить отзывчивость GUI? Нужно что бы дочерние потоки совершенно не влияли на работу главного. |
|
|
silver47 |
![]()
Сообщение
#2
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: ![]() ![]() ![]() |
Тоже такое встретил. Не знаю как объяснить. Запускаю поток на выполнение с помошью QtConcurrent. В том смысле, что вызываю метод start потока через QtConcurrent.
Сообщение отредактировал silver47 - 11.11.2011, 18:43 |
|
|
RazrFalcon |
![]()
Сообщение
#3
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Я создаю QThread. Затем создаю свой класс (не знаю как это правильно называется
![]() а затем:
|
|
|
silver47 |
![]()
Сообщение
#4
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: ![]() ![]() ![]() |
Если не будет других советов, то запускайте каждый из своих потоков чере QtConncurent, думаю поможет, но думаю, что неправильно, но другого пути не знаю. У меня такая ситуация, например с COM портами, если они виртуальные и транслируются через интернет, то велика веротность, что при низкой скорости порт будет открываться \ закрываться продолжительное время. На это время GUI виснет, вот это я не смог победить даже через QtConncurent
Сообщение отредактировал silver47 - 11.11.2011, 19:54 |
|
|
DOGG |
![]()
Сообщение
#5
|
![]() Студент ![]() Группа: Участник Сообщений: 44 Регистрация: 9.8.2011 Из: Калининград Пользователь №: 2798 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
Можно попробовать при запуске потоков, которые не работают с интерфейсом, назначить им приоритет ниже среднего.
Сообщение отредактировал DOGG - 14.11.2011, 10:42 |
|
|
RazrFalcon |
![]()
Сообщение
#6
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Можно попробовать при запуске потоков, которые не работают с интерфейсом, назначить им приоритет ниже среднего. Это только в винде. В Linux приоритеты только от рута, вроде. Наткнулся на хорошую статью: http://doc.qt.nokia.com/qq/qq27-responsive-guis.html |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 3.5.2025, 17:42 |