2014-04-14 3 views
0

10 초 내에 호출 될 때마다 runnable, 아래 코드가 있습니다. 무엇이든해야합니다.runnable을 일찍 끝내는 방법

CoresManager.slowExecutor.schedule(new Runnable() { 
        @Override 
        public void run() { 
         try { 
          if (isAtWildSafe()) { 
           player.sm("This area is now safe for you."); 
           player.setCanPvp(false); 
           player.safeWait = false; 
           removeIcon(); 
          } 
         } catch (Throwable e) { 
          Logger.handle(e); 
         } 
        } 
       }, 10, TimeUnit.SECONDS); 

그러나 5 초가 지나갔으며 조치를 취하기 전에 실행 가능을 취소하려고합니다. 어떻게하면 모든 활성 실행 파일을 취소하지 않고도이 작업을 수행 할 수 있습니까?

답변

3

schedule(...) 메서드는 Future 개체를 반환해야합니다. Future API에는 cancel(...) 메소드가 있습니다.

원하는 작업을 수행하려면 Future 개체를 어딘가에 저장 한 다음 5 초 후에 cancel을 호출하십시오. 이미 실행 된 미래를 취소하는 것이 좋습니다.

+0

일정을 미래 객체로 설정하는 방법에 대한 예제를 얻을 수 있습니까? – RuneRebellion

+0

질문에 이미 코드에서 그렇게하지 않습니까? (하지만 그렇지 않다면 예를 들어 인터넷 검색을 해보십시오.) –

+0

마음에 두지 말고, 솔직히 물어볼 때 제대로 생각하지 않았습니다. 내 잘못이야. – RuneRebellion

관련 문제