![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Abesh |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 13 Регистрация: 4.6.2010 Пользователь №: 1780 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
Читал, все что до чего могли добраться руки, но не помогает (если, честно впервые применяю сигналы\слоты в многопоточности)
читал доку, http://habrahabr.ru/blogs/qt_software/115835/ и оригинал, и еще сверху. Есть синглтон (TT600Controller) есть класс, наследуемый от Qthread c вот таким вот run-ом:
Есть еще простенький класс, наследуемый от QObject c вот такими методом:
Проблема заключается в том, что слот не вызывается. В указанных статьях что-то говориться про Q_INVOKABLE, но не совсем вкурил как его юзать, тупое копирование доки по этому макросу не спасают ситуацию Да, вариант с moveToThread вообще не вариант |
|
|
Гость_Гость_* |
![]()
Сообщение
#2
|
Гости ![]() |
М-да, надо чаще смотреть в консоль приложения. Выяснилось, что-то в moc не зарегистрированы "ссылочные" типы, т.е (что-то QString&) и если все в одном потоке все нормально, то при копировании в очередь событий, как и обещают тролли, возникают проблемы. При попытке зарегистрировать подобные типы, возникают какие-то ошибки компиляции, с которыми я не стал пока разбираться, а просто убрал все передачи по ссылкам .
|
|
|
wiz29 |
![]()
Сообщение
#3
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
между потоками лучше ссылки не передавать, особенно на объекты библиотеки.
|
|
|
Abesh |
![]()
Сообщение
#4
|
Студент ![]() Группа: Новичок Сообщений: 13 Регистрация: 4.6.2010 Пользователь №: 1780 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
Ну Qstring это не объект библотеки, а контейнер.
Но иногда приходиться, передавать по ссылкам или указателям, из-за стоимости копирования, гораздо дешевле бывает залочить поток. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 26.5.2025, 1:49 |