Is there a code to check if a timer is running?

后端 未结 3 639
無奈伤痛
無奈伤痛 2021-01-17 17:02

I have a game where I am scheduling a timer. I have this CoresManager file:

package com.rs.cores;

 import java.util.Timer;
 import java.util.concurrent.Exec         


        
3条回答
  •  臣服心动
    2021-01-17 17:39

    public long scheduledExecutionTime()

    Returns the scheduled execution time of the most recent actual execution of this task. (If this method is invoked while task execution is in progress, the return value is the scheduled execution time of the ongoing task The return value is undefined if the task has yet to commence its first execution.

    This method is typically not used in conjunction with fixed-delay execution repeating tasks, as their scheduled execution times are allowed to drift over time, and so are not terribly significant.

    1. first thing periodically running tasks need set/reset state flag
    2. second (when i look at examples) it is better to seal this type of class

    but if someone insist to have such methods

       public abstract class NonInterruptableTask extends TimerTask {
    
            protected boolean isDone = false;
    
            public boolean isDone() {return isDone;}
    
            protected abstract void doTaskWork();
    
            @Override
            public void run() {
                isDone = false;
                doTaskWork();
                isDone = true;
            }
    
      }
    

    usage:

      TimerTask myTask = new NonInterruptableTask() {
    
           @Override 
           public void doTaskWork() {
    
              //job here 
           }
      };
    

提交回复
热议问题