зачем мне EventQueue для запуска нового потока в java EDT? (ДЖАВА)

Я правильно понял? EDT является основным потоком GUI. Чтобы начать длинную операцию, предпочтительнее запускать ее в новом потоке. Так зачем нам для этого нужно использовать EventQueue? Почему мы не можем просто создать и запустить новый поток, как в программах, отличных от Swing?


person nicks    schedule 25.04.2011    source источник


Ответы (2)


Ничто не говорит о том, что вам нужно использовать EventQueue, если вы выполняете длительную операцию в фоновом режиме. Целью очереди здесь является использование, если вам нужно обновить пользовательский интерфейс, что длительный процесс завершен.

Когда процесс завершится, вы поместите какое-то выполняемое уведомление в очередь событий, чтобы уведомить пользовательский интерфейс о завершении.

person John Vint    schedule 25.04.2011

Нет, EDT, по сути, неявно работает в основном потоке. Вы не «двигаете» EDT. Скорее, если вы хотите работать вне основного потока и вне EDT, вы делаете, как говорите, и начинаете свой собственный поток.

Взгляните на SwingWorker. Это общий механизм, помогающий облегчить это.

person Will Hartung    schedule 25.04.2011
comment
См. также Начальные темы. Первоначальный поток не запускает EDT, но он должен запланировать создание GUI в EDT. - person trashgod; 25.04.2011