TimerTask
을 500ms 후에 실행해야하는 Java 응용 프로그램이 있습니다. 그러나 특정 이벤트가 발생하면이 작업의 타이머를 재설정해야합니다. 실행하려면 500ms를 더 기다려야합니다.) 나는 전체 수업에 대해 timer
을 선언했다. 이 문제를 해결해야하지만 내가 줄 timer = new Timer()
에서 그것을 reinitialising 생각 나는 timer.cancel()
를 사용하는 경우 내가 타이머 객체를 재사용 할 수 있다는 사실을 알고Java - 호출 후 타이머 객체 재사용
public static void main(String[] args) {
if (curr_pck == my_pck) {
timer.cancel();
timer.purge();
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
myTask();
}
}, 500);
}
}
public static void myTask() {
timer.cancel();
timer.purge();
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
myTask();
}
}, 500);
//EXECUTE CODE WHICH ISN'T RELEVANT TO THE QUESTION
}
: 나는 다음과 같은 코드를 사용합니다. 이 주위에 어떤 방법이 있습니까? myTask()
함수 내에서 라인 timer.schedule(new TimerTask() {
에
예외 : 당신은 자바의 스윙 타이머를 체크 아웃 할 수 있습니다
java.lang.IllegalStateException: Timer already cancelled.
당신은 이것에 대한 [MCVE] 작성하고 정확하고 완전한 오류를 표시해야합니다 귀하의 리셋 수행 예를
을 만듭니다. – pvg
문제를 재현하는 전체 예제와 예외의 전체 스택 추적을 게시하십시오. –
질문에 대답하기 위해서는 변수의 범위를 아는 것이 필요합니다. 더 많은 코드와 스택 추적을 게시하십시오. –