some Function()
{
for(xxxxxx){
//a infinite loop or just a long code loading an running stuff from a list
}
}
ActionListener Panic(yyyyyyyy)
{
Stops the infinite loop by list.clear() or insert some thing into the list and break the loop
}
我试图制作一个紧急按钮来停止我的代码,问题是当 Java 正在运行某些东西时,所有的 actionListener 都会排队并在我的大 for 循环完成它的东西后触发。这可能是一个愚蠢的问题,但我似乎无法弄清楚。我能想到的唯一解决方案是使它成为一个线程(有点困难,不确定它是否会起作用)或弹出消息询问用户是否要继续每个循环(提示太多)。只想有一个红色按钮可以打破循环并破坏程序,就像 linux 中的 Ctrl Z 和 eclipse 中的红色停止按钮或停止文件传输的取消按钮。
感谢观看 =D 非常感谢
哦顺便说一句,如果解决方案是 Thread,请把它放在我上面的例子中。我几乎不知道如何写一个线程 =(
最佳答案
如果你想停止一个无限(或很长)的循环,循环必须定期确保它是否没有被中断。
public class AlmostInfinite extends Thread {
public void run() {
while (!Thread.interrupted()) {
/* Do some work, not too long */
}
cleanUp();
}
private cleanUp() {
/* close network connections, files and other resources */
}
}
ActionListener panic(AlmostInfinite t)
{
t.interrupt();
}
关于停止 Java 程序中间进程的 Java 紧急按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3940673/