Error Java - Timer already cancelled.
페이지 정보
본문
HSMS SECS 데이타를 주고 받는 인터페이스를 개발하던중~ "Timer already cancelled."와 같은 에러를 만났습니다. 기본적인 테스트인 Connected와 LinkTest는 정상적으로 통과가 되었지만, 장비 PM이나 예상하지 못한 에러 또는 오프라인으로 연결이 끊어질 수 있습니다. 장비와 서버가 연결되어 있는지 체크하는 로직을 타이머로 구현했는데요. C#에서는 타이며 인스턴스(Instance)를 생성한 후 Enabled 속성을 True 또는 False로 시작하거나 중지할 수 있습니다. 자바도 타이머를 사용하는데 schedule과 cancel로 동일하게 사용할 수 있어요. 그런데~ 자바는 cancel 후 다시 schedule하면 에러가 발생합니다.
타이머를 여러개 써서 코드를 다 바꿔야겠네요-_-; 아래와 같이 타이머를 초기화할 수 있는 메소드로 처리해야 합니다.
private tmrT5;
private static void StartTimerT5() {
tmrT5 = new Timer();
tmrT5.schedule(new TimerTask() {
@Override
public void run() {
ClientResult result = null;
try {
result = client.Start();
} catch (IOException e) {
e.printStackTrace();
}
if (result == ClientResult.OK) {
tmrT5.cancel();
StartTimerT5();
} else {
}
}
}, 10000, 10000);
}
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~
추천0 비추천0
- 이전글윈도우 10 관리자 권한으로 시작 프로그램 등록하기. 22.11.09
- 다음글자바 타이머 사용하는 방법. (Java Timer) 22.11.02
댓글목록
등록된 댓글이 없습니다.