gpt4 book ai didi

java - 线程中带有按钮的 while 循环无法停止

转载 作者:行者123 更新时间:2023-12-01 10:16:38 25 4
gpt4 key购买 nike

对于线程来说有点陌生。

我当前的代码;

public boolean running = false;
private void jStartButton1ActionPerformed(java.awt.event.ActionEvent evt){
running = true;
(new Thread(new Home())).start();

}
private void jStopButton2ActionPerformed(java.awt.event.ActionEvent evt) {
running = false;
System.out.println("trying to stop");
}


public void run() {
while(running){
//continously run code from a file thats updated every few seconds, running=false when its found what its looking for
}

}

jStopButton2 正在被处理,并且在调试中将 running 设置为 false,但 run() 线程从未识别出它。run() 有自己的 running=false ,当它找到它要查找的内容时构建它(并且它停止 while 循环),但现在如果我想停止,我无法手动停止它。

我知道我的线程错了,有什么帮助吗?难道线程里面的东西都被锁了?那么它无法识别正在更改的运行 boolean 值?我该如何改变这一点? o.o

任何帮助将不胜感激。

最佳答案

此时您正在创建 Home 类的新实例

(new Thread(new Home())).start();

因此您的标志running将再次初始化(如果它不是静态的)因此,尝试使用 House 的相同实例,您将保留 running

的值

我是说

(new Thread(this)).start();

关于java - 线程中带有按钮的 while 循环无法停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35853226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com