@Gfd

Почему Task не запускается снова?

Мне нужно, чтобы при вызове метода pause() поток task останавливался, а при последующем выполнении условия if(ChoiceRe.getText()=="Обычный") он возобновлялся. Но вот этот код этого не выполняет

if(ChoiceRe.getText()=="Обычный"){
System.out.println("Обычный режим запущен");
normalTime=normalTime*60000;
normalTime=normalTime/100;
f=new FileInputStream("src//application//res//Re//NormalRe//NormalReChild.mp3");
if(pause==true){
task3 = new Task() {

@Override
public Void call() throws Exception {
double TimeStart = 0d;
for (int row = 0; row < 100; row++) {
TimeStart = TimeStart + 0.01;
updateProgress(TimeStart, 1);
try {
Thread.sleep(normalTime);
} catch (InterruptedException e) {
return null;
}
}
return null;
}
};
time.progressProperty().bind(task3.progressProperty());
Executors.newCachedThreadPool().submit(task3);
pause=false;
}else{
task = new Task() {

@Override
public Void call() throws Exception {
double TimeStart = 0d;
for (int row = 0; row < 100; row++) {
TimeStart = TimeStart + 0.01;
updateProgress(TimeStart, 1);
try {
Thread.sleep(normalTime);
} catch (InterruptedException e) {
return null;
}
}
return null;
}
};
time.progressProperty().bind(task.progressProperty());
Executors.newCachedThreadPool().submit(task);
}
Task task2 = new Task() {

@Override
protected Void call() throws Exception {
while(time.getProgress()!=1.0){
if(time.getProgress()==0.03){
try {
Player p=new Player(f);
p.play();
} catch (JavaLayerException e) {}
}
}
return null;
}
};
Executors.newCachedThreadPool().submit(task2);
}
}
public void pause(){
task.cancel(true);
pause=true;
}
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 1
Konstantin18ko
@Konstantin18ko
Стоматолог
Запихните код правильно, он не читабелен.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы