У меня есть класс Java-апплета, который реализует runnable. В методе run() этого класса у меня есть вызов repaint(). Содержимое метода run содержится в бесконечном цикле. В init() класса апплета я использую new Thread(this).start()
, чтобы запустить второй поток. Мой вопрос: если вызов метода repaint() из метода run() будет сигнализировать основному потоку для выполнения paint(), или если paint() будет выполняться как часть второго потока. Если первый, то второй поток продолжит цикл, не дожидаясь (если возможно) для paint() для выполнения?Вызов repaint() из основной темы в java-апплете
0
A
ответ
0
Технически, Диспетчерская тема событий - это собственный поток, отдельный от (основной) нити, запускающей апплет.
Процесс перерисовки запланирован на RepaintManager
. Короткий ответ в основном заключается в том, что RepaintManager
запланирует перерисовки, появляющиеся в разделе «Диспетчер событий».
Можно ли позвонить repaint
непосредственно из отдельной темы? Было бы возразить, что это не очень хорошая практика.
В связи с этим я склонен ошибаться на стороне осторожности и просто гарантирую, что все взаимодействия с пользовательским интерфейсом и синхронизируются с EDT независимо. Сохраняет много второго угадывания, IMHO
Насколько я понимаю, repaint
обычно считается потокобезопасным. Это не значит, что это останется в будущем.
Смежные вопросы
- 1. Закрытие основной из другой темы
- 2. вызов основной темы из Runnable thread в java
- 3. Вызов методов в окне WPF из основной темы
- 4. Обновление основной активности из основной темы
- 5. Вызов метода основной темы из шаблона второго рисунка нити
- 6. repaint() вызов от конструктора
- 7. Вызов из другой темы
- 8. Android: Вызов активности из темы
- 9. NSRunAlertPanel() вне основной темы?
- 10. Отмена основной темы XNA?
- 11. Вызов текущей темы C#
- 12. repaint() метод не вызов paintComponent()
- 13. Вызов Java multiple repaint() игнорируется
- 14. WPF Сделайте снимок экрана из другой темы, кроме основной темы
- 15. Выполнить код в контексте основной темы (Lazarus)
- 16. Рисунок на холсте основной формы из основной темы
- 17. Редактирование основной темы в VirtoCommerce
- 18. Извлечение информации из основной темы GUI
- 19. Звоните WWW вне основной темы
- 20. Сбой на VAO, загруженный из основной темы
- 21. Публичные сообщения из темы async в основной поток из F #
- 22. C# возвращаемые значения из основной темы периодически
- 23. исполнитель не выполняет потоки из основной темы
- 24. Вызов темы C++ из C#
- 25. Обновление основной темы tablelayout из async thread
- 26. Несколько потоков из одной основной темы
- 27. Удалить AlamofireImage responseImage из основной темы
- 28. Изменение основной цвет темы из приложения Android
- 29. Как предотвратить блокирование основной анимации основной темы?
- 30. Вызов ServeHandler из основной функции
Спасибо за ответ, но на самом деле он не отвечает на мой вопрос. =/ – fvgs
Ответ - не полагайтесь на то, что он был потокобезопасным и приложил все усилия, чтобы по возможности называть 'repaint' из EDT (используя что-то вроде' SwingUtilities.invokeLater' - но это мое личное чувство на предмет – MadProgrammer