Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Gestione timer

  1. #1

    Gestione timer

    Salve, una domanda elementare sui timer in java...
    Ho un timer che ogni 5 secondi stampa l'ora... come faccio a fermarlo dopo 10 stampe? (cioè dopo 50 secondi)

    Questo è il mio codice:

    codice:
    package timer;
    
    import java.util.Timer;
    import java.util.TimerTask;
    
    public class Timero {
    	public static void main(String[] args) {
    		Timer timer = new Timer();
    		Timer timerStop = new Timer();
    		TimerTask task = new Task();
    		//TimerTask taskS = new TaskS();
    		timer.schedule(task, 0, 5000);
    		timerStop.schedule(stop(timer), 50000, 0);
    	}
    
    	public static TimerTask stop(Timer t) {
    		t.cancel();
    		return null;
    	}
    }
    E questa è la classe che mi fa stampare l'ora:
    codice:
    package timer;
    
    import java.util.*;
    
    public class Task extends TimerTask {
    
    	public void run() {
    		Calendar data = new GregorianCalendar();
    		System.out.println(data.getTime());
    	}
    }
    Ho provato varie soluzioni, ma non so come fermare il timer dopo 50 secondi!
    In questo codice postato ho provato a creare un metodo nella classe con il main.. ho anche provato a creare un'altra classe, ma l'esito è sempre lo stesso!
    Piero

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Per java c'è una sezione apposita ... fatti "spostare" dal moderatore ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Originariamente inviato da oregon
    Per java c'è una sezione apposita ... fatti "spostare" dal moderatore ...
    porca miseria, ho sbagliato?
    chiedo scusa!!! uff!!!


    mi potete spostare nella sezione giusto?
    Piero

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Spostato.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Mettere un bel contatore che dopo il numero di volte che vuoi tu non ti stampa più l'ora?
    al volante son nervoso

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Gestione timer

    Originariamente inviato da piero87
    codice:
    public class Task extends TimerTask {
    
    	public void run() {
    		Calendar data = new GregorianCalendar();
    		System.out.println(data.getTime());
    	}
    }
    Ho provato varie soluzioni, ma non so come fermare il timer dopo 50 secondi!
    In Task tieni una variabile di istanza che fa da "contatore". Nel run(), quando trovi che ha contato 10 volte (puoi scegliere tu se partire da 0 in incremento o da 10 in decremento), invochi cancel() (ereditato da TimerTask).
    Tutto qua.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7

    Re: Re: Gestione timer

    Originariamente inviato da andbin
    In Task tieni una variabile di istanza che fa da "contatore". Nel run(), quando trovi che ha contato 10 volte (puoi scegliere tu se partire da 0 in incremento o da 10 in decremento), invochi cancel() (ereditato da TimerTask).
    Tutto qua.
    Ok, come idea l'ho capita... ma sono davvero poco pratico di Java... potresti farmi vedere come scrivere il codice?
    Piero

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Gestione timer

    Originariamente inviato da piero87
    Ok, come idea l'ho capita... ma sono davvero poco pratico di Java... potresti farmi vedere come scrivere il codice?
    Tutto sommato è semplice.

    codice:
    public class Task extends TimerTask {
        private int cont = 10;
    
        public void run() {
            // tuo lavoro .....
    
            if (--cont == 0) {
    	    cancel();
            }
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Salve a tutti,
    invece di creare un nuovo post scrivo qui sotto dato che l'argomento è molto simile a quello trattato.
    Io ho un istruzione java che esegue un calcolo un po' pesantuccio. Volevo sapere come si fa per creare un timer che mi inizia a contare in secondi prima dell'istruzione pesante e che finisce di contare quando finisce l'istruzione pesante?

    Ecco una specie di pseudo-codice (per intenderci meglio):
    codice:
    timer.start();
    grafo.testBFS_modificato(); // istruzione pesante //
    timer.stop();
    int tempo=timer.getTempoTrascorso();
    System.out.println(tempo);
    L'importante non è partecipare.. ma
    vincere!
    Errare Humanum EST, perseverare.. a OVEST!

  10. #10
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da offlieman
    Salve a tutti,
    invece di creare un nuovo post scrivo qui sotto dato che l'argomento è molto simile a quello trattato.
    Io ho un istruzione java che esegue un calcolo un po' pesantuccio. Volevo sapere come si fa per creare un timer che mi inizia a contare in secondi prima dell'istruzione pesante e che finisce di contare quando finisce l'istruzione pesante?

    Ecco una specie di pseudo-codice (per intenderci meglio):
    codice:
    timer.start();
    grafo.testBFS_modificato(); // istruzione pesante //
    timer.stop();
    int tempo=timer.getTempoTrascorso();
    System.out.println(tempo);
    codice:
    long start = System.currentTimeMillis();
    operazione pesante
    long end = System.currentTimeMillis();
    
    long delta = end - start;
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.