我有一个带有 JOGL 组件的应用程序。当它使用 System.exit(0) 关闭时,我经常遇到异常:
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at sun.java2d.Disposer.run(Disposer.java:125)
at java.lang.Thread.run(Thread.java:619)
我在退出 Swing 应用程序时看到了这个问题 Occasional InterruptedException,但我没有运行任何非守护线程。我想知道底层的 JOGL 代码是否不断地将事件放入 Swing 事件队列中,这可能会导致此错误,因为 Swing 应用程序只会在事件队列为空时正确关闭。
有没有办法更干净地关机?也许以某种方式停止 JOGL 主循环(我正在使用 3rd 方工具,nasa worldwind,所以我不一定有权访问运行应用程序的主 Animator)。
编辑:事实证明这根本不是 openGL 问题。OpenGL 正在正确关闭,而我正在运行的关闭挂钩中只是一场比赛。谢谢。