Avatar billede eikhorsholm Nybegynder
01. september 2005 - 12:16 Der er 13 kommentarer og
1 løsning

Timeout på object.

Jeg har et object, som jeg gerne vil have til at slutte (break) 30 sekunder efter det er oprettet. Men samtidig vil jeg også have muligheden for at nulstille timeren ved at kalde f.eks. object.startforfra.

Nogle eksempler?
Avatar billede arne_v Ekspert
01. september 2005 - 12:33 #1
mener du en tråd ?
Avatar billede eikhorsholm Nybegynder
01. september 2005 - 12:35 #2
Ja, min fejl :-)
Avatar billede arne_v Ekspert
01. september 2005 - 12:38 #3
enten skal du vel have noget logik i din run som selv afslutter run efter 30 sekunder
eller så skal en anden tråd (f.eks. en timer) kalde interrupt på den efter 30 sekunder
Avatar billede eikhorsholm Nybegynder
01. september 2005 - 12:43 #4
Ok, hvordan laver jeg en anden tråd som kalder intterrup efter 30 sekunder, men som jeg samtidig kan nulstille så den starter forfra?
Avatar billede arne_v Ekspert
01. september 2005 - 12:45 #5
en Timer er nok det nemmeste

----

jeg plejer altid at starte en ny tråd så jeg ved ikk eom man kan genstarte en tråd
Avatar billede arne_v Ekspert
01. september 2005 - 12:47 #6
kig på java.util.Timer
Avatar billede arne_v Ekspert
01. september 2005 - 12:48 #7
måske kunne du også bruge den til den som din egentlige tråd bruges til !?!?
Avatar billede eikhorsholm Nybegynder
04. september 2005 - 21:51 #8
Hmm. Har prøvet, at kigge på det. Men det dur ikke rigtig.
Jeg opretter en ny timer med:
Timer timer = new Timer();

Hvordan får jeg den så til, efter f.eks. 5 sekunder at skrive "Hej igen" ud?
Avatar billede arne_v Ekspert
04. september 2005 - 21:54 #9
du laver en klasse som extender TimerTask

og så kalder du schedule et eller andet passende på dit Timer objekt med en
instans af din nye klasse
Avatar billede eikhorsholm Nybegynder
04. september 2005 - 22:00 #10
Hvad er det galt med:

    Timer timer = new Timer();
    timer.schedule(new Timeout(), 5000);
   
    class Timeout extends TimerTask {
        public String run() {
            timer.cancel();
            return "Hej igen";
        }
    }
Avatar billede arne_v Ekspert
04. september 2005 - 22:11 #11
følgende virker:

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

public class TimerFun {
    public static void main(String[] args) throws Exception {
        Timer timer = new Timer();
        timer.schedule(new Timeout(), 5000);
        Thread.sleep(10000); // we have to wait to see the timer
        timer.cancel();
    }
}

class Timeout extends TimerTask {
    public void run() {
        System.out.println("Hej igen");
    }
}
Avatar billede eikhorsholm Nybegynder
05. september 2005 - 11:34 #12
Yes, det virker. Laver du ikke et svar?
Tak indtil videre ;-)
Avatar billede arne_v Ekspert
05. september 2005 - 11:50 #13
svar
Avatar billede eikhorsholm Nybegynder
06. september 2005 - 14:01 #14
Thank You!
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