在Swing-app中应该从哪个线程调用System.exit()?

Ano*_*non 8 java swing

在Swing-app中可以System.exit()从任何线程调用吗?(例如在美国东部时间?)

jjn*_*guy 6

System.exit()如果你能提供帮助,你不应该打电话.

退出java进程的最佳方法是让所有线程正常退出.这将终止VM.

在你的主体JFrame,你应该setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE).

然后你可以打电话frame.dispose()关闭JFrame并退出EDT.

  • 不应该是'DISPOSE_ON_EXIT`吗?使用`EXIT_ON_CLOSE`也会导致正在运行的线程被杀死,不允许它们正常退出(当用户关闭JFrame时). (3认同)
  • 我不同意.在事情四舍五入并且应用程序退出之前,GC需要一段时间.一旦你处理了你应该关闭的内容,调用System.exit就没有错.调用System.exit后,文件,套接字等都可以自行查找. (2认同)

per*_*ian 5

由于VM在System.exit()呼叫后终止,因此我认为调用正在进行哪个线程没有任何区别.