Я правильно понял? EDT является основным потоком GUI. Чтобы начать длинную операцию, предпочтительнее запускать ее в новом потоке. Так зачем нам для этого нужно использовать EventQueue? Почему мы не можем просто создать и запустить новый поток, как в программах, отличных от Swing?
зачем мне EventQueue для запуска нового потока в java EDT? (ДЖАВА)
Ответы (2)
Ничто не говорит о том, что вам нужно использовать EventQueue, если вы выполняете длительную операцию в фоновом режиме. Целью очереди здесь является использование, если вам нужно обновить пользовательский интерфейс, что длительный процесс завершен.
Когда процесс завершится, вы поместите какое-то выполняемое уведомление в очередь событий, чтобы уведомить пользовательский интерфейс о завершении.
person
John Vint
schedule
25.04.2011
Нет, EDT, по сути, неявно работает в основном потоке. Вы не «двигаете» EDT. Скорее, если вы хотите работать вне основного потока и вне EDT, вы делаете, как говорите, и начинаете свой собственный поток.
Взгляните на SwingWorker. Это общий механизм, помогающий облегчить это.
person
Will Hartung
schedule
25.04.2011
См. также Начальные темы. Первоначальный поток не запускает EDT, но он должен запланировать создание GUI в EDT.
- person trashgod; 25.04.2011