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

Java Discussion :

Exécuter 2 TimerTask et attendre que l'un ait fini avant de démarrer l'autre


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Par défaut Exécuter 2 TimerTask et attendre que l'un ait fini avant de démarrer l'autre
    Bonjour,
    Je développe une application qui ressemble à un diaporama. Une « dia » se compose de 2 parties. Celle de gauche affiche un poème écrit en français ; tandis que celle de droite est réservée à l’affichage des multiples traductions de ce poème. Chacune de ces traductions est divisée en 7 paragraphes. (Pour des raisons de préservation de la mise en page originale du poème, ceux-ci sont au format image.)
    Mon application consiste à afficher aléatoirement les paragraphes jusqu’à ce qu’ils soient tous dans la même langue. Lorsque c’est le cas, la traduction entière reste affichée durant un certain laps de temps. Une fois ce laps écoulé, la fonction d’affichage aléatoire s’enclenche de nouveau, et ainsi une boucle se perpétue.
    Dans ce but, j’ai besoin de 2 Timer avec chacun son propre TimerTask. L’un doit s’enclencher lorsque l’autre a fini son traitement.
    Comment puis-je faire en sorte qu’un TimerTask attente bien que l’autre ait fini de s’exécuter et qu’il ne démarre qu’après le délai qu’on lui a spécifié lors de l’appel de sa méthode « schedule » ?
    Merci de votre aide et de bien joyeuses fêtes à toutes et tous.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    Tu peux tres bien tenter de faire qq chose dans ce genre :

    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
    25
    26
    27
    28
    29
    30
    31
    public abstract class ChainedTimerTask extends TimerTask {
     
        [...]
     
        private Optional<TimerTask> next = Optional.empty();
        private Optional<Timer> timer = Optional.empty();
     
        public void setNext(final TimerTask next) {
            this.next = Optional.ofNullable(next);
        }
     
        public void setTimer(final Timer timer) {
            this.next = Optional.ofNullable(timer);
        }
     
        @Override
        public void run() throws Exception {
           try {
               [...]
               if (!timer.isEmpty() && !next.isEmpty()) {
                   timer.get().schedule(next.get());
               }
           } catch (Exception ex) { 
               // Log.
           }
           } finally {
               next = Optional.empty();
               timer = Optional.empty();
           }
        }
    }
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Android] Attendre que TTask renvoie la valeur sans bloquer l'exécution du programme
    Par delaio dans le forum Composants FMX
    Réponses: 3
    Dernier message: 16/02/2018, 17h09
  2. Exécuter mon application en tant que démon Unix
    Par Giovanny Temgoua dans le forum Langage
    Réponses: 1
    Dernier message: 28/09/2006, 22h20
  3. [C#] Attendre que le backgroudworker aie terminé son travail
    Par bossun dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/07/2006, 15h08
  4. Réponses: 3
    Dernier message: 15/05/2006, 09h49
  5. [C#] Attendre que l'application soit lancée ?
    Par choas dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/05/2006, 21h39

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