Здравствуйте, гость ( Вход | Регистрация )
| Гость_Сергей_* |
24.11.2010, 10:50
Сообщение
#1
|
|
Гости |
задача такая, нужно создать несколько потоков, в частности 3, причем чтобы из первого потока запускался второй, из второго третий, а в третьем производились вычисления.
информацию о состоянии вычислений третьего потока нужно вывести на progressBar формы. я использую сигнально слотовые соединения т.е запускаю первый поток: запускаю третий поток произвожу в третьем потоке вычисления и посылаю состояние вычислений через все потоки в форму. но почему то не работает. Подскажите, в чем может быть поблема-ошибка. |
|
|
|
![]() |
|
xls |
26.11.2010, 9:51
Сообщение
#2
|
|
Студент ![]() Группа: Участник Сообщений: 44 Регистрация: 6.9.2010 Пользователь №: 2013 Спасибо сказали: 7 раз(а) Репутация: 2
|
Привет.
Ваша проблема в том, что все вызовы connect связывают сигналы и слоты объектов, находящихся в одном потоке ( да, сам объект потока находится в том потоке, в котором он был создан ) и это вызывает соединение типа Qt::DirectConnection, а не желаемое Вам Qt::QueuedConnection. Для того, чтобы реализовать желаемое поведение можно поступить следующим образом ( рассмотрим простейший случай - два потока ). 1. Создать дочерний поток (ДП). 2. Создать в дочернем потоке объект с сигналом "прогресс". 3. Связать сигнал дочернего потока "прогресс" с сигналом созданного объекта "прогресс". 4. Связать сигнал объекта со слотом главного потока. 5. Вызывать сигнал ДП. Для дважды дочерний потока ( ДДП ) аналогично создается объект, он связывается с сигналом ДДП, а затем с сигналом ДП, он вызовет свой объект, который свяжется с главным потоком асинхронно. |
|
|
|
Сергей проблема с потоками Thread в Qt 24.11.2010, 10:50
kwisp Цитата(Гость_Сергей_* @ 24.11.2010, 10:50... 24.11.2010, 11:05
Сергей Спасибо за совет, я переделал немного код, в резул... 24.11.2010, 14:27
kwisp можно проверить что возвращает connect во всех слу... 24.11.2010, 17:34
Iron Bug я не спец в QT, но есть предположение, что внутри ... 24.11.2010, 18:06
Сергей Нет, в консоли отладки никаких сообщний нет, но во... 25.11.2010, 0:04
Iron Bug читай про реализацию QT сигналов в многопоточных п... 25.11.2010, 0:35
Сергей Цитата(xls @ 26.11.2010, 9:51) Привет.
Ва... 30.11.2010, 13:53![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 7.12.2025, 15:59 |