vamsi
vamsi

Reputation: 323

Timertask for sleep

I want to use TimerTask for Sleep, but I am unable to run this code.
The run function is called for the first time, and then it waits infinitely. Is there any issue with my code?

import java.util.Timer;
import java.util.TimerTask;

public class TimeExecutor {

     class LocalSleep extends TimerTask {
        private int noOfSeconds;
        private int count = 0;
        private Timer timer;

        public LocalSleep(int noOfSeconds, Timer timer) {
            this.noOfSeconds = noOfSeconds;
            this.timer = timer;
        }

        void sleeeep() {
            if (count < noOfSeconds) {
                System.out.println("Count: " + count);
                count++;
            } else
                timer.cancel();
        }

        @Override
        public void run() {
            sleeeep();
        }
    }

    public static void main(String args[]) {
        Timer timer = new Timer();
        TimeExecutor t = new TimeExecutor();
        timer.schedule(t.new LocalSleep(5, timer), 1000);
    }
}

Upvotes: 1

Views: 141

Answers (1)

vamsi
vamsi

Reputation: 323

Working after replacing

timer.schedule(t.new LocalSleep(5, timer), 1000);

with:

timer.schedule(t.new LocalSleep(5, timer), 0, 1000);

Upvotes: 1

Related Questions