JAVA ile setInterval kullanma

JavaScript'ten JAVA'ya geçenler için şöyle bir fonksiyon kodladım. JS'de "setInterval" fonksiyonu var. Ben bu fonksiyonu JAVA'ya uyarladım. Aynısını yaptım. Buyrun fonksiyon ve örnek kod.

Şöyle bir problem var ki ben Timer kısmını ayrı bir şekilde yapamadım. Çünkü hata oluştu veya zamanlayıcı durmadı. Eğer çözümünü biliyorsanız yani tam olarak JS'ye benzemesini sağlayabilirseniz yapabilirsiniz. Ben aşağıdaki gibi uygulayabildim.

Java:
    public static Timer setInterval(Timer Tm, Runnable Task, int Interval)
    {
        Tm.schedule(new TimerTask()
        {
            @Override
            public void run()
            {
                Task.run();
            }
        }, 0, Interval);
        return Tm;
    }
    public static void main(String[] args)
    {
        AtomicInteger a = new AtomicInteger(0);
        Timer Tm1 = new Timer();
        setInterval(Tm1, () ->
        {
            a.set(a.get() + 1);
            System.out.println("Test -> " + a.get());
            if (a.get() >= 5)
            {
                Tm1.cancel();
            }
        }, 1000);
 
Java:
Tm1.Purge();
return;

Tm1.Cancel(); tek başına yetmeyebilir. Timer'ın sonunu temizlemeniz gerektiği için Purge() kullanın.

Ek olarak Timer'ın kaç defa döndüğünü bir static int üzerinde depolayıp belli bir sayıya gelince durdurabilirsiniz.
 
Timer sınıfını static olarak tanımlamışsınız, sonrasında bu static nesneyi neden

Timer Tm1 = new Timer();

diyerek yeni oluşturdunuz ki?
 
Yaptığın halini değil de yapmaya çalıştığın yani o timer olayının durmadığı halini atarsan bakalım beraber.
Kaldırdım. Sanırım Timer nesnesi fonksiyonun içerisindeydi. Bu sefer diğer sınıfta fonksiyon oluşturunca "this" elementi veya farklı şekillerde Timer nesnesini durduramıyorum. Bundan dolayı bu şekilde kodlandı.
 

Yeni konular

Geri
Yukarı