Zatrzymanie wątku

0

Witam, mam taką metodę:

public void TimerThread()
  {
    try
    {   
      r=new Runnable()
      {
        public void run()
        {
          startTimer();
        } 
      };
    Thread Timer=new Thread(r,"Timer Thread");
    System.out.println(r);
    Timer.start();
    } 
    catch(Exception exc)
    {     
    }
  }
  public void startTimer()
  {
    try
    {
      for(int i=czasCzuwaka;i>=0;i--)
      {
        System.out.println(i);
        Thread.sleep(100);
    }
    } 
    catch(Exception exc)
    { 
    } 
  } 

Później po naciśnięciu na checkbox ją wywołuję:

 if(stanAutoPilot == true)
        {
            czasCzuwaka = 20;
            TimerThread();    
        }

Jak zrobić obsługę takiego przypadku, aby po naciśnięciu innego jButtona wątek się zatrzymywał na 10 sek. po czym znowu się włączał i tak w kółko? Próbowałem z wait() ale chyba, źle tego używałem.

Z góry dziękuję za pomoc.

0

jeżeli dobrze rozumiem, chcesz "przypałzować" Twój wątek na 10 sek.
Metoda raczej jest na to prosta. Proponuje zmodyfikować lekko pętlę for i dodać np publiczą zmienną boolowską


public volatile boolean Wait=false;
    try
    {
      for(int i=czasCzuwaka;i>=0;i--)
      {
        if(Wait) 
     {   
Thread.sleep(10000);
Wait=false;
}
        System.out.println(i);
        Thread.sleep(100);
    }

oczywiście po naciśnięciu Twojego drugiego buttona wartość Wait zmienia się na true;
Naturalnie jest to prostackie rozwiązanie i nie ma tutaj "odnawiania" czasu oczekiwania po wielokrotnym naciśnięciu. Ale to też jest bardzo proste to rozwiązania.
PS. sorry za format kodu, pisane na szybkiej odpowiedzi

0

Dzięki wielkie !!!

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