Avatar billede tmouritsen Nybegynder
01. september 2001 - 14:44 Der er 9 kommentarer og
1 løsning

Hvordan kan jeg udføre en metode hver 20. minut?

Titlen siger stort set det hele. Jeg skal køre en metode med et bestemt interval. Hvordan gør jeg det?
Avatar billede el_gnu Nybegynder
01. september 2001 - 15:25 #1
Hvis du har mulighed for at bruge swing, så kan du bruge en Timer.

Eks:

public class Timer20min implements java.awt.event.ActionListener
{
  javax.swing.Timer t = new javax.swing.Timer(1200000, this);

  public static void main(String args[])
  {
    t.start();
  }

  public void actionPerformed(ActionEvent e)
  {
    //denne kode bliver kaldt hvert tyvende minut.
  }
}
Avatar billede tmouritsen Nybegynder
01. september 2001 - 15:39 #2
Hvis du laver et tomt svar så skal jeg nok give dig nogle point
Avatar billede el_gnu Nybegynder
01. september 2001 - 15:56 #3
ok...
Avatar billede logical Nybegynder
01. september 2001 - 21:19 #4
Den findes iøvrigt også i java.util (Timer og TimerTask)
Avatar billede tmouritsen Nybegynder
02. september 2001 - 12:54 #5
--> logical: Du skulle have været lidt tidligere ude - java.util.Timer og TimerTask virker bedre end javax.swing.Timer
Avatar billede christian-petersen Nybegynder
02. september 2001 - 13:02 #6
Du kan også bruge den helt simple metode:

while (true){
  myMethod();
  thread.sleep(1000*60*20);
  }

Bemærk dog at dette pauser hele din tråd...
Avatar billede tmouritsen Nybegynder
02. september 2001 - 13:26 #7
Der er ikke speciel håndtering af tråde og desuden kender jeg ikke ret meget til styring af ditto. Så jeg er lykkelig over at jeg har fået ovenstående til at virke.
Avatar billede christian-petersen Nybegynder
02. september 2001 - 13:32 #8
Det betyder at det foreslåede kode vil pause hele dit program i det angivne antal millisekunder. Det kan være brugbart hvis du f.eks. vil parse en logfil med en fast interval, men er ubrugligt hvis du vil arbejde videre i dit program i mellem kørslen af din metode (med mindre du opretter en seperat tråd til dette...)
Avatar billede tmouritsen Nybegynder
02. september 2001 - 13:39 #9
Det vil i praksis virke at stoppe hele min tråd, da der ikke skal foregå noget i pausen. Der bliver henvist til thread - som jeg formoder er en abstraktion over tråden. Hvordan kan jeg finde den tråd der styrer min klasse?
Avatar billede christian-petersen Nybegynder
02. september 2001 - 14:06 #10
Du kan bruge:

\"Thread.sleep(int)\"

\"Thread\" er et keyword der refererer til den aktuelle tråd.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester