Насколько я знаю, метод SwingUtilies.invokeLater(new Runnable())
используется, чтобы заставить EDT выполнять задания, определенные в объекте Runnable
, но как это можно себе представить? Обычно метод run()
в объекте Runnable
используется для выполнения Java-материала в новом потоке, но не здесь, потому что здесь объект - вызывает только EDT?Как работает SwingUtilies.invokeLater (новый Runnable())?
0
A
ответ
3
Runnable - это просто интерфейс с единственным методом run(). Любой, имеющий доступ к объекту Runnable, может вызвать этот метод. Потоки делают это. EDT делает это. Исполнители делают это. Ваша программа может это сделать. Это просто конвенция. Другое программное обеспечение может использовать разные соглашения, например, ExecutorService может вызывать объекты Callable.
Внутренний, EDT имеет свой собственный метод запуска, который в цикле извлекает Runnable объекты из своей очереди и вызывает их метод run().
Смежные вопросы
- 1. runOnUiThread (новый Runnable() {пунктуации (маркер) вопрос
- 2. Как работает метод postDelayed (Runnable runnable, Long delayMilliSeconds)?
- 3. Java Runnable не работает
- 4. Вызов Runnable из Runnable
- 5. Создает ли handler.post (runnable) новый поток?
- 6. Android: Runnable inside Runnable
- 7. TextView.post Runnable не всегда работает
- 8. Как передать параметр в ThreadManager.createThreadForCurrentRequest (новый Runnable() в GAE
- 9. уведомить() не работает в Runnable
- 10. keylistener и runnable не работает
- 11. Runnable не работает должным образом
- 12. Обработчик runnable работает несколько раз
- 13. runnable jar file not runnable
- 14. Будет ли handler.post (новый Runnable()); создать новую тему в Android?
- 15. Как запустить/остановить Runnable/Handler?
- 16. Как остановить обработчик Runnable?
- 17. Как работает новый ReCAPTCHA?
- 18. Ничто не показывает на GUI с SwingUtilities.invokeLater (новый Runnable()
- 19. Как переопределить Runnable внутри метода?
- 20. Spinner setSelection() не работает без postDelayed Runnable
- 21. Android - функция Runnable run() не работает
- 22. Почему метод Runnable работает только один раз?
- 23. Runnable in service работает в основной теме
- 24. Android: Как остановить Runnable?
- 25. Как подождать Runnable?
- 26. Как убить петлитель/runnable
- 27. Как использовать sharedPrefs.getString в Runnable
- 28. Android Runnable не работает на Android 2.3?
- 29. eclipse - export runnable jar file не работает, работает работает
- 30. JavaFx runnable JAR export не работает
В примерах «Runnable» нет ничего волшебного. Это всего лишь фрагменты кода для запуска в будущем. 'SU.invokeLater' просто добавляет сам runnable в очередь событий (в обертке события). В какой-то момент он достигает заголовка очереди, и цикл обработки EDT удаляет его для обработки. Для обработки такого события EDT запускает runnable. – Gene
@Gene: Вы должны добавить это как оповещение, чтобы получить credidts :-). – BetaRide