我正在构建一个系统,其中有一个简单的 GUI,可以触发系统执行。我以一种在引发异常时System.exit(0)
调用系统的方式实现了系统,因此应用程序停止。
我希望停止执行,就像现在一样,但是我希望 GUI 也不会关闭。我尝试在单独的线程中实现系统,但是当抛出一些异常时,应用程序仍然关闭。
有没有办法让 UI 保持打开状态,但仍然停止实施?
我正在构建一个系统,其中有一个简单的 GUI,可以触发系统执行。我以一种在引发异常时System.exit(0)
调用系统的方式实现了系统,因此应用程序停止。
我希望停止执行,就像现在一样,但是我希望 GUI 也不会关闭。我尝试在单独的线程中实现系统,但是当抛出一些异常时,应用程序仍然关闭。
有没有办法让 UI 保持打开状态,但仍然停止实施?
您不能为此目的使用 Java system.exit,因为该函数会终止运行您的代码的 Java 虚拟机实例,从而停止应用程序的所有线程。
为了使 System.exit 现在按您希望的方式工作,您需要有两个不同的进程,以便每个进程都在自己的 Java 虚拟机中运行。但是,这将使将事物联系在一起变得更加困难。
理想情况下,您应该在实现中添加某种控制,以便您的 GUI 线程可以激活或停用一个自然会停止实现逻辑的开关。在我看来,这确实是最好的方法。
从本质上讲,它们需要是单独的应用程序。也就是说,使它们成为独立的进程,而不是独立的线程。
UI 和后端之间的这种松散耦合将实现您想要的行为,并且还会产生与分离 UI 和后端的关注点相关的许多其他好处。
不,如果您的程序在同一进程上运行,则无法让您的 UI 保持打开状态。我想您可以将您的 UI 和您的程序作为单独的应用程序运行,但这似乎很乏味且容易出错。如果抛出异常,您应该通知用户,而不仅仅是退出 JVM。