powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Swing: распараллелить EDT и долго выполняющийся метод.
1 сообщений из 1, страница 1 из 1
Swing: распараллелить EDT и долго выполняющийся метод.
    #40044845
Привет.

Есть такой метод, например:

Код: java
1.
2.
3.
4.
5.
6.
7.
public Object someMethod(Object param) {
   return performLongCalculations();
}

private Object performLongCalculations() {
   // Здесь какие-то долгие вычисления/вызовы внешних сервисов и т.д.
}



Метод someMethod выполняется в EDT и подтормаживает UI. Как бы его реализовать в SwingWorker? Если сделать что-то типа такого:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public Object someMethod(final Object param) {
   SwingWorker<Object, Void> worker = new SwingWorker<Object, Void>() {
      @Override
      protected Object doInBackground() {
         return performLongCalculations(param);
      }

      @Override
      protected void done() {
         try {
            get();
         } catch (InterruptedException e) {

         }
         catch (ExecutionException e) {

         }
      }
   };
   worker.execute();
}



Тогда someMethod должен вернуть результат уже до завершения doInBackground, после worker.execute(). Не пойму, как тут разделить EDT и кастомный поток.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Swing: распараллелить EDT и долго выполняющийся метод.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]