我正在使用来自 Jython 的 Swing,我发现 while System.exit()
(from java.lang
) orJFrame.setDefaultCloseOperation(EXIT_ON_CLOSE)
工作正常,调用sys.exit()
挂起。
atexit.register
显然,通过等待所有线程退出来注册一个函数,正如 Python 所期望的那样(这实际上与 Java 不同)。
这意味着如果 aActionListener
被调用(例如单击 a 时JButton
),AWT 的 Event Dispatching Thread 将被生成,并且调用sys.exit()
将永远挂起,等待它退出。
这是一个示例:https ://gist.github.com/2877919 。关闭框架会退出程序,除非先单击该按钮。
退出 Jython 应用程序的最佳方式是什么?使用EXIT_ON_CLOSE
orSystem.exit()
会完全忽略atexit
...