method.invoke函数是否会创建另一个执行线程?因为当我用它来调用GUI应用程序的main方法时,invoke方法立即返回,程序和GUI应用程序同时运行。
答案 0 :(得分:6)
没有。
您观察到的行为是由于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");
}
}
如果运行它,您将看到所有这些方法都是非阻塞的,因此{GUI}设置后会立即返回main
方法,并且事件调度线程会执行进一步的工作。
答案 1 :(得分:1)
没有。 Method.invoke 就像普通方法一样工作。如果不是你期望的话,也许会抛出异常。你把调用包起来了吗?
另外,一个片段会有很多帮助