Проблемы с многопотоковым приложением, Работа с второстепенным потоком. |
Здравствуйте, гость ( Вход | Регистрация )
Проблемы с многопотоковым приложением, Работа с второстепенным потоком. |
Litkevich Yuriy |
5.2.2008, 11:47
Сообщение
#11
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Нужно ли тело для threadSignal()? Из книжки Макса Шлее: Цитата Сигналы определяются в классе, как и обычные методы, только без реализации. С точки зрения программиста они являются только протатипами методов, содержащихся в заголовочном файле определения класса к стати у Шлее написано еще так: Цитата ...не имеет смысла определять сигналы как protected, private, public
Сообщение отредактировал Litkevich Yuriy - 5.2.2008, 11:51 |
|
|
AD |
5.2.2008, 11:52
Сообщение
#12
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Из книжки Макса Шлее: Цитата Сигналы определяются в классе, как и обычные методы, только без реализации. С точки зрения программиста они являются только протатипами методов, содержащихся в заголовочном файле определения класса Спасибо. Я использую книжку Жасмин Бланшет, Марк Саммерфилд "Qt 4: Программирование GUI на C++" |
|
|
Litkevich Yuriy |
5.2.2008, 12:01
Сообщение
#13
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
AD22, ты где сигнал посылаешь (emit threadSignal()) можешь пример привести?
Сообщение отредактировал Litkevich Yuriy - 5.2.2008, 12:01 |
|
|
AD |
5.2.2008, 12:03
Сообщение
#14
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
AD22, ты где сигнал посылаешь (emit threadSignal()) можешь пример привести? Конечно!
На счет protected, private, public - да, в этом была ошибка - убрал! Сообщение отредактировал AD22 - 5.2.2008, 12:05 |
|
|
AD |
5.2.2008, 12:09
Сообщение
#15
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Теперь ошибка при выполнении. Ломается программа на строчках:
|
|
|
Litkevich Yuriy |
5.2.2008, 12:12
Сообщение
#16
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
тема такая, высылать сигнал может только тот класс в котором сигнал определен, я так понял что он у тебя в другом классе, тогда сделай так:
а в коде где ты делал emit threadSignal(); вызывай метод sendMySignal() |
|
|
AD |
5.2.2008, 12:24
Сообщение
#17
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
тема такая, высылать сигнал может только тот класс в котором сигнал определен, я так понял что он у тебя в другом классе, тогда сделай так:
а в коде где ты делал emit threadSignal(); вызывай метод sendMySignal() Проблема была не в этом. Я в конструкторе делал connect, а в этот момент rthread был еще не инициализирован. Ошибку поправил, но все-равно траектория не выводится, хотя работает приложение быстро и без ошибок выполнения! |
|
|
ViGOur |
5.2.2008, 12:26
Сообщение
#18
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
connect(this, SIGNAL(threadSignal()), rthread, SLOT(threadSlot())); А rthread у тебя валидный? Думаю, что нет, потому и валится...я так понял что он у тебя в другом классе Если он сделал так как я показал, то в том классе, что нужно, в LogReader.
|
|
|
ViGOur |
5.2.2008, 12:27
Сообщение
#19
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Ошибку поправил, но все-равно траектория не выводится, хотя работает приложение быстро и без ошибок выполнения! sad.gif Если она у тебя должна выводиться в слоте, то поставь в нем точку останова и посмотри, правильно отрабатывает ли...
Сообщение отредактировал ViGOur - 5.2.2008, 12:27 |
|
|
AD |
5.2.2008, 12:38
Сообщение
#20
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Если она у тебя должна выводиться в слоте, то поставь в нем точку останова и посмотри, правильно отрабатывает ли... Да... она не отрабатывает. Я сделал так, как Вы и показывали. Спасибо за оперативную и продуктивную помощь. Буду разбираться с проблемами. Если что, могу вопросы задавать? |
|
|
Текстовая версия | Сейчас: 18.4.2024, 12:15 |