IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Autodestruction d'un Timer


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 33
    Par défaut Autodestruction d'un Timer
    Hello,

    j'utilise un Timer dans une applic.
    Lors de la creation de ce timer je donne en parametre une class etendue de TimerTask dans laquelle j'ai implementer la methode run().

    Jusqu'ici tout va bien...

    Comme est-ce que je peux faire pour detruire mon timer depuis la methode run()
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class TimerTaskHorloge extends TimerTask{
     
    private void run(){
    //methode pour detruire mon timer
    }
    }
     
    ...
    public static void main(){
    Timer t = new Timer (new TimerTaskHorloge(), 0, 100)}
    Ca doit etre tout simple mais j'arrive pas a trouver la soluc...
    Merci d'avance

    A plus

    ZD

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 34
    Par défaut
    Slt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class TimerTaskHorloge extends TimerTask{ 
     
    private void run(){
    //ce que doit faire TimerTaskHorloge()
    .............. 
    //methode pour detruire mon timer 
    t.cancel();
    } 
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 33
    Par défaut
    hello, ca marche pas, voici l'erreur qui est genere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    symbol  : variable t
    location: class lumieretheatre.Circuit.TimerTaskTransitionCircuit
                        t.Cancel();
    Note: C:\Documents and Settings\ZDigital\Bureau\LumiereTheatre\src\lumieretheatre\Circuit.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    1 error
    Voici ici mon code en "un peu plus clair"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    public class Circuit implements Serializable {
     
    ...
     
    private class TimerTaskTransitionCircuit extends TimerTask {
     public run(){
      //Ce que fais mon timer
     
      //Destruction du timer
      t.Cancel();
     }
    }
     
    ...
     
    public LanceMonTimer {
    Timer t = new Timer();
    t.scheduleAtFixedRate(new TimerTaskTransitionCircuit(), 1, 1);
    }
     
    ...
     
    }
    Est-ce que tu connais une autre solution ? En fait il faut que j'arrive a recuperer l'object qui instancie mon TimerTask...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 80
    Par défaut
    Voir en dessous -> j'ai fait une erreur sorry

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 80
    Par défaut
    [quote="HopeLeaves"]ca c'est parceque tu utilise java 1.5 non ?

    Si c'est le cas, et que comme je le pense tu compiles a la console, fait :

    javac -source 1.4 -target 1.4 machin.java

    Sinon, tant pis, mais ca me sortait la meme erreur quand j'utilisai certaine methode de la classe Vector.

    Ce qui m'ettone c'est le "1 error"

    Il te met juste "Note :", ca devrai etre "1 warning".

    bizard.

    Par contre si il faut que tu recupere ton TimerTaskTransitionCircuit, ne fait pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    t.scheduleAtFixedRate(new TimerTaskTransitionCircuit(), 1, 1);
    sinon tu perd la reference.

    je ferai ca moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public  TimerTaskTransitionCircuit  LanceMonTimer () { /
    Timer t = new Timer();
    TimerTaskTransitionCircuit tttc = new TimerTaskTransitionCircuit();
    t.scheduleAtFixedRate( tttc , 1, 1);
     
    return tttc;
    }
    Comme ca tu lance le timer et tu renvois une reference sur le timerTask utilisé.

  6. #6
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Tu devrais plutot écrire simplement cancel(); à la place de t.Cancel();, non ?
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 80
    Par défaut
    oui xavlours a raison, t n'existe pas a l'endroit ou est implementé run(),
    c'est "this.cancel()" ou "cancel()" tout court.

Discussions similaires

  1. Comment faire un Timer de fonction PORTABLE ?
    Par dieuP1guin dans le forum C
    Réponses: 3
    Dernier message: 04/07/2003, 10h44
  2. [horloge] conflit caractère / timer
    Par JeanJean dans le forum C
    Réponses: 10
    Dernier message: 09/05/2003, 23h47
  3. [] [Réseau] Anti-timer, anti-idle
    Par clonevince dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 15/01/2003, 22h19
  4. Timer de précision
    Par guigui dans le forum MFC
    Réponses: 1
    Dernier message: 04/12/2002, 15h21
  5. Timer en µsecondes
    Par Dagobert dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 25/11/2002, 00h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo