Зачем мне EventQueue, чтобы начать новый поток в Java EDT?(ДЖАВА) - PullRequest
1 голос
/ 25 апреля 2011

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

Ответы [ 2 ]

1 голос
/ 25 апреля 2011

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

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

1 голос
/ 25 апреля 2011

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

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

...