Свинг invokelater freeze
-
29-10-2019 - |
Вопрос
Я вызываю invokeLater непосредственно из кнопки на action, выполняемой с помощью этого кода:
общий, и при этом графический интерфейс по-прежнему зависает.Почему?Я получаю тот же результат без использования функции invokelater.
Следует ли мне использовать
общийвместо этого?
Изменить:
Спасибо, нужно использовать новую ветку.
Решение
invokeLater
по-прежнему запускает код в потоке диспетчера - чуть позже.Цель invokeLater
- позволить фоновым потокам публиковать работу в потоке диспетчера событий.
Похоже, вам действительно следует создать другой поток - или использовать пул потоков для того же эффекта, или SwingWorker
.Что бы вы ни делали, вам нужно избегать запуска медленного метода в потоке диспетчера событий.
Не связан с StackOverflow