2009-09-11 61 views

Trả lời

94

Giữ một tham chiếu đến bộ đếm thời gian ở đâu đó, và sử dụng:

timer.cancel(); 
timer.purge(); 

để ngăn chặn bất cứ điều gì nó đang làm. Bạn có thể đặt mã này bên trong tác vụ bạn đang thực hiện với một số static int để đếm số lần bạn đã sử dụng, ví dụ:

private static int count = 0; 
public static void run() { 
    count++; 
    if (count >= 6) { 
     timer.cancel(); 
     timer.purge(); 
     return; 
    } 

    ... perform task here .... 

} 
+4

Tôi nghĩ hủy là đủ, không cần phải có thanh trừng – Jacky

+0

là nó tốt để thêm timer.cancel() trong trận chung kết theo (cuốn sách Effetive Java) –

+0

@Jacky đó là thực hành tốt để có cả hai, nhưng về mặt lý thuyết, 'hủy bỏ' sẽ hoạt động. –

13

Bạn nên dừng nhiệm vụ mà bạn đã lên kế hoạch về bộ đếm thời gian: hẹn giờ của bạn:

Timer t = new Timer(); 
TimerTask tt = new TimerTask() { 
    @Override 
    public void run() { 
     //do something 
    }; 
} 
t.schedule(tt,1000,1000); 

Để ngăn chặn:

tt.cancel(); 
t.cancel(); //In order to gracefully terminate the timer thread 

Chú ý rằng chỉ hủy hẹn giờ sẽ không chấm dứt timertasks đang diễn ra.

9
timer.cancel(); //Terminates this timer,discarding any currently scheduled tasks. 

timer.purge(); // Removes all cancelled tasks from this timer's task queue. 
1

Chấm dứt bộ hẹn giờ một lần sau khi tỉnh táo tại một thời điểm cụ thể theo mili giây.

Timer t = new Timer(); 
t.schedule(new TimerTask() { 
      @Override 
      public void run() { 
      System.out.println(" Run spcific task at given time."); 
      t.cancel(); 
      } 
}, 10000); 
Các vấn đề liên quan