我一直在编写一个模拟,该模拟具有用于参数输入的 JFrame
GUI,以及运行模拟动画的单独 JFrame
。
我将动画与模拟一起更新,因此对重绘的调用来自函数runsimulation()
我已经为我的主 GUI 框架添加了一个 EXIT_ON_CLOSE
,当动画运行时我可以关闭该框架并且它不会再次弹出,但我想知道是否可能当我关闭动画帧时关闭模拟线程。
因为目前当我关闭帧时,模拟会继续在后台运行并正确完成,但我希望动画帧上的关闭事件也成为“取消模拟”。
最佳答案
这里你有两个选择。一种选择是将正在运行的线程变成“守护进程”线程。这意味着该线程不会让程序保持运行,因此如果您关闭 JFrame 并退出应用程序,它将立即终止。
请注意,长时间运行的线程可能会在处理过程中突然终止。
(可能更好)的方法是在线程上调用 interrupt()
,并让线程定期检查 isInterrupted()
,如果标志是,则干净地退出设置。
关于java - 是否可以停止某个线程的运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21109530/