我尝试了三种方法,但我无法工作。我从这篇文章的最高答案中获取了很多代码How to know if other threads have finished?我非常密切关注该列表中的#5。这是我的问题:在我的主线程中,我需要能够在按下按钮时检测辅助线程是否正在运行。
第一种方法
NotifyThread task = null;
@FXML
private void handleButtonPress(ActionEvent event){
if (thread == null){
NotifyThread thread = new Thread2(1,0);
}
else{
//task is already running
thread.end()
}
上面代码的问题是线程始终为null。它不是结束现有的线程,而是创建另一个与(坏)
一起运行的线程第二种方法
if (thread.isAlive())
第三种方法
if(thread.getState.equals(RUNNABLE))
这两种方法都给了我运行时异常
答案 0 :(得分:1)
你需要
thread = new Thread2(1,0);
而不是
NotifyThread thread = new Thread2(1,0);