![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
wiz29 |
![]()
Сообщение
#1
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
Столкнулся со следующей проблемой: имеется некая сцена которая отрисовывается в QImage imgScene. (отрисовка происходит в отдельном потоке) имеется метод для копирования изображения (копия сцены рисутеся в гуи потоке) Возникает следующий эффект http://s013.radikal.ru/i325/1012/d6/792b6748b025.png такое ощущение что картинка еще не успела появится на экране приходит следующий paint event. Вопрос, как можно синхронизировать и почему получается такой эффект (картинка не успевает дорисоваться до конца сверху вниз).
|
|
|
![]() |
wiz29 |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
ну когда срабатывает слот у объекта gui потока он вызывает метод у объекта рабочего потока по копированию, на момент копирования вызывается локер, таким образом если QImage в объекте рабочего потока находится в занятом состоянии то gui объект будет ждать завершения данной операции и захватит после этого мьютекс, ну и наоборот аналогично.
Просто ведь в QImage используется implicit share data copy может в этом проблема? но тогда сомнительная выгода от использования рисования в QImage в отдельном потоке. у меня сложилось ощущение что нужно делать вертикальную синхронизацию. Только как пока незнаю |
|
|
![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 28.6.2025, 3:36 |