Безопасно ли синхронизировать java.awt.Container.paint (Графика g)? - PullRequest
2 голосов
/ 18 мая 2010

Я использую некоторые сторонние компоненты AWT в настольном приложении. Компоновка компонента изменяется в методе paint(), и это вызывает очень странное поведение. Похоже, что это исправлено добавлением ключевого слова synchronized к методу paint (), но безопасно ли это делать?

Ответы [ 2 ]

3 голосов
/ 18 мая 2010

Похоже, что метод paint() вызывается вне потока отправки событий , что действительно может вызвать очень странное поведение, поэтому его никогда не следует делать.

Вместо paint() код приложения должен вызывать только repaint()

1 голос
/ 18 мая 2010

Метод рисования следует вызывать только в одном потоке, нити диспетчеризации событий, поэтому синхронизировать не нужно. Я полагаю, что корень проблемы заключается в том, как используются компоненты. Взгляните на эту ссылку , чтобы узнать о некоторых идеях, касающихся параллелизма в пользовательском интерфейсе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...