Zatrzymanie funkcji na określony czas

0

Witam, mam taki mały problem :

Mam taki kod:

public void zatrzym (int time)
    {
        Date czas = new Date();
        long a;
        boolean check=true;
        a = czas.getTime()+time;
        System.out.print ("a="+a+"\ttime="+time+"\n");
        while (check==true)
        {
            long b;   
            b=czas.getTime();
            System.out.print ("a="+a+"\ttime="+time+"\tb="+b+"\n");
            if (a<b)
            {
                System.out.print ("ok");
                check=false;
            }
        }
    }

i wywołuję tę funkcję gdzieś np. zatrzym (10)
Niestety nie wiem dla czego za każdym zmienna b wskazuje taką samą wartość co na początku a - a więc nie zmienia się a według mnie powinna przyjmować coraz większe wartości ponieważ czas leci przecież

Ktoś może mi powiedzieć co źle robię ?

Głownie chodzi mi o to abym mógł bez żadnych wątków zatrzymać w dowolnym miejscu programu na dowolny czas (chcę ładnie rysować linię w czasie).

0

Wykonanie programu można zatrzymać na czas t (w milisekundach) tak:

try
{
     Thread.sleep(t);
}
catch(InterruptedException e)
{
}

BTW, wymyśl inną nazwę dla swojej metody, od zatrzym() robi się niedobrze.

0
bogdans napisał(a)

Wykonanie programu można zatrzymać na czas t (w milisekundach) tak:

try
{
     Thread.sleep(t);
}
catch(InterruptedException e)
{
}

BTW, wymyśl inną nazwę dla swojej metody, od zatrzym() robi się niedobrze.

wiem że tak można to zrobić ale nie chcę w ten sposób na wątkach.

BTW nazwa metody jest tylko dla potrzeb forum zrobiona naprawdę inaczej to wygląda

0

Zrob jak mowi Bogdans, co znaczy ze nie ma byc na watkach? W taki sposob jak ty masz to tzw "busy wait", czyli przez np 10 sekund programi nic nie robi tylko w while sprawdza warunki. Bez sensu.

0

Co do tego co robisz zle, to Date.getTime() zwraca czas w milisekundach, a ty pozniej dodajesz do niego np 10 - moze o to chodzi?

0

Gdzie ty widzisz wątki ?

Thread.sleep(t);

wstrzymuje aktualnie wykonywany wątek, w programie "bezwątkowym" wstrzymuje program.
BTW, ja bym rozumiał podejście odwrotne, w programie mam jakieś dziwaczne i niepoprawne językowo nazwy, publikując kod na forum zamieniam je na poprawne. Działanie odwrotne jest IMO lekceważeniem osób od których oczekuję pomocy.

0

Tak jak mi powiedziałeś owszem działa i dziękuję za rozwiązanie. :)
Co do nazwy to wpisałem taką bo w programie widniała dgashj () - więc to nie było lekceważenie - nie miałem takiego celu

1 użytkowników online, w tym zalogowanych: 0, gości: 1