Здравствуйте, гость ( Вход | Регистрация )
|
wiz29 |
2.12.2010, 15:08
Сообщение
#1
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12
|
Столкнулся со следующей проблемой: имеется некая сцена которая отрисовывается в QImage imgScene. (отрисовка происходит в отдельном потоке) имеется метод для копирования изображения (копия сцены рисутеся в гуи потоке) Возникает следующий эффект Link такое ощущение что картинка еще не успела появится на экране приходит следующий paint event. Вопрос, как можно синхронизировать и почему получается такой эффект (картинка не успевает дорисоваться до конца сверху вниз).
|
|
|
|
![]() |
|
wiz29 |
2.12.2010, 15:48
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12
|
ну когда срабатывает слот у объекта gui потока он вызывает метод у объекта рабочего потока по копированию, на момент копирования вызывается локер, таким образом если QImage в объекте рабочего потока находится в занятом состоянии то gui объект будет ждать завершения данной операции и захватит после этого мьютекс, ну и наоборот аналогично.
Просто ведь в QImage используется implicit share data copy может в этом проблема? но тогда сомнительная выгода от использования рисования в QImage в отдельном потоке. у меня сложилось ощущение что нужно делать вертикальную синхронизацию. Только как пока незнаю |
|
|
|
wiz29 Моргание при отрисовке QImage 2.12.2010, 15:08
BRE А как происходит синхронизация этих двух изображен... 2.12.2010, 15:13
wiz29 Когда картинка содержащая изображение сцены готова... 2.12.2010, 15:17
BRE А в потоке ожидается момент, когда GUI-поток скопи... 2.12.2010, 15:19
wiz29 да , там синхронизация по мьютексу
но копировани... 2.12.2010, 15:22
BRE Т.е. ты посылаешь сигнал и блокируешь поток. А раз... 2.12.2010, 15:23
BRE Вот смотри. Рабочий поток закончил формирование ка... 2.12.2010, 16:08
wiz29 Щас попробую, просто ощущение создалось такое что ... 2.12.2010, 16:32
BRE Цитата(wiz29 @ 2.12.2010, 16:32) не не по... 2.12.2010, 16:35
wiz29 ну не создавать каждый раз в paintEvent новый паин... 2.12.2010, 16:38
BRE Цитата(wiz29 @ 2.12.2010, 16:38) ну не со... 2.12.2010, 16:48
wiz29 мне это тоже показалось весьма странным, но я попр... 2.12.2010, 17:28
wiz29 Разобрался с проблемой. Просто у нас есть некое дв... 3.12.2010, 10:53![]() ![]() |
|
Текстовая версия | Сейчас: 16.12.2025, 2:07 |