Создает ли Method.invoke другой поток выполнения? - PullRequest
1 голос
/ 17 декабря 2010

Создает ли функция method.invoke другой поток выполнения? Потому что, когда я использовал его для вызова основного метода приложения с графическим интерфейсом, метод invoke сразу возвращался, и программа и приложение с графическим интерфейсом работали одновременно.

Ответы [ 2 ]

6 голосов
/ 17 декабря 2010

Нет.

Наблюдаемое вами поведение вызвано тем, что библиотека GUI при инициализации запускает поток диспетчеризации событий, и этим потоком выполняется вся последующая работа, связанная с GUI.

РЕДАКТИРОВАТЬ Вот простое приложение Swing GUI:

public class Test {
    public static void main(String[] args) throws Exception {
        JFrame frame = new JFrame("Hello, world!");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        System.out.println("Main method returns");
    }
}

Если вы запустите его, вы увидите, что все эти методы не блокируют, поэтому метод main возвращается сразу после настройки графического интерфейса, и дальнейшая работа выполняется потоком отправки событий.

1 голос
/ 17 декабря 2010

Нет. Method.invoke работает так же, как обычный метод.Если это не то, что вы ожидаете, может быть, это исключение.Вы завернули вызов?

Кроме того, фрагмент кода очень поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...