Как в Java вызвать метод основного потока по окончании работы фонового? У меня есть функция поиска на карте памяти файлов определенного типа. Она занимает большое время и потому находится в фоновом потоке. После ее завершения мне необходимо вывести названия этих файлов на экран, а сделать я это могу только из основного потока.
В итоге у меня возникает задача, по завершении фонового потока вызвать метод основного и метод join здесь не подойдет, т.к. мне нужно чтобы основной поток работал в то время, когда работает фоновый, а не ждал его окончания.

21 Авг 2019 в 07:06
241 +1
0
Ответы
1

Для решения данной задачи можно воспользоваться классом SwingUtilities, который предоставляет методы для работы с графическим интерфейсом в Java.

Создайте класс, который будет выполнять поиск файлов определенного типа в фоновом потоке. Пусть этот класс будет реализацией интерфейса SwingWorker.import javax.swing.*;
public class FileSearcher extends SwingWorker<Void, String> {
@Override
protected Void doInBackground() throws Exception {
// Здесь выполняется поиск файлов определенного типа
publish("file1.txt");
publish("file2.txt");
return null;
}
@Override
protected void process(List<String> chunks) {
for (String fileName : chunks) {
// Публикуем найденные файлы
System.out.println(fileName);
}
}
}Теперь создайте основной поток и запустите в нем фоновый поток для поиска файлов.import javax.swing.*;
public class MainThread {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
FileSearcher fileSearcher = new FileSearcher();
fileSearcher.execute();
});
// Другие действия, которые будут выполняться в основном потоке
}
}

Таким образом, после завершения работы фонового потока метод process будет вызван в основном потоке и выведет названия найденных файлов на экран. А основной поток продолжит свою работу независимо от работы фонового потока.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир