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

VB.NET Discussion :

PB ajout d'une durée à un instant t


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    autre
    Inscrit en
    Septembre 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : autre
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 35
    Par défaut PB ajout d'une durée à un instant t
    Bonjour,

    je viens vers vous avec un petit problème dont je ne trouve pas de solution...

    J'utilise un timer et j'aimerais appelé des procédures à un instant précis.
    Voici mon code:

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Private Sub LANCER_Click(sender As Object, e As EventArgs) Handles LANCER.Click
     
     
            Timer1 = New Timers.Timer
     
            ' déclaration de l'heure h de lancement.
     
            temps = Format(Now, "HH:mm:ss")
     
            'délai en millisecondes du déclenchement de chaque action du tick.
     
            Timer1.Interval = 500
     
            'active le timer.
     
            Timer1.Enabled = True
     
            Timer1.Start()
     
     
        End Sub
     
     
        Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Elapsed
     
     
     
            temps = Format(Now, "HH:mm:ss")
     
            ' teste l'heure toutes les 1s / boucle tous les 1s
     
            temps = DateAdd(DateInterval.Second, 1, temps)
     
            Select Case temps
     
               Case "09:37:05" : Call test1() 
     
                    Timer1.Stop()
                    Timer1.Enabled = False
     
            End Select
     
     
        End Sub
    avec l'heure fixe ça fonctionne mais je voudrais remplacer le "09:37:05" par temps + timevalue("00:00:05") où temps est le moment où j'ai cliqué sur le bouton et ("00:00:05") représente 5 secondes après l'instant du clic en variable.

    5 secondes est un exemple ce serait plus quelque du genre 54min et 41sec...

    Je vous remercie pour l'aide que vous pourriez m'apporter!

    Cordialement,

    Innuendo67.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Par défaut
    Bonjour,

    L'idée sur laquelle je partirais serait plutôt de définir l'Interval du timer sur le clique du bouton de lancement, avec la durée demandée (pas 500ms) puis de lancer immédiatement le timer, ainsi dans l'event Tick Elapsed il suffit de faire le traitement de fin du timer.
    En tout cas, présenté comme ça, je ne vois pas l'intérêt de déclencher d'utiliser le tick toute les 1/2 secondes et de vérifier si on est à la bonne heure... après j'ai peut être pas tout compris.

    Bon code,
    J@ck.

    [EDIT] désolé j'ai confondu l'event Tick et Elapsed.

  3. #3
    Membre averti
    Homme Profil pro
    autre
    Inscrit en
    Septembre 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : autre
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 35
    Par défaut
    Bonjour J@ckHerror et merci de me répondre.

    Si j'ai bien compris ton idée cela voudrais dire que je devrais créer un timer pour chaque temps à rajouter. En effet, j'ai plusieurs déclenchement sur le même timer d'où mon case. Je ne l'avais pas précisé. Je creuse du côté timespan. Temps + timespan marche hors tick mais pas dans, je ne comprends pas pourquoi.

    Merci.

    Cordialement

    Innuendo67

  4. #4
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Bonjour

    regarde la class TimeSpan

    Ce n'est pas très clair
    Tu as plusieurs procédures ex proc1,proc2 proc3 et tu veux que proc1 soi appellé après 45 min 12 sec et proc 2 après m min s sec et proc3 après .....
    Quand proc3 est executé Tu stop le timer ou tu recommences le cycle.

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Par défaut
    Tout comme @shayw, dis nous ce que tu veux faire, complètement et avec les détails.
    Tu as toujours le même nombre de durée ? tu as un nombre max/min de durée ? Chaque durée doit aboutir à une tache, toujours la même, une tache par durée, les taches doivent être toujours dans le même ordre ou les taches sont lié à une durée ?? Que se passe-t-il si j'ai 2 durées identiques ... etc ?? etc
    Précise le contexte aussi.

    Suivant tes réponses les solutions peuvent être complètement différentes.

    J@ck.

  6. #6
    Expert confirmé

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Tout d'abord, je t'invite à lire l'article que j'ai écris sur la mise en place de tâches périodiques. Plusieurs éléments devraient t'intéresser pour répondre à ton problème :
    • la notion de dérive des horloges (je ne sais pas si tu sais ce que c'est, mais si ce n'est pas le cas, alors lit l'article car ton code en souffre !)
    • le déclenchement d'une action à une date donnée, en utilisant des threads et en calculant la durée à attendre.


    Maintenant, comme le souligne J@ckHerror, dit nous précisément ce que tu souhaites faire. Place nous dans le contexte et présente nous un cas d'utilisation simple mais représentatif. Pas de code, juste des mots !

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

Discussions similaires

  1. [AC-2007] Ajout d'une durée de 12:00 lors d'un import de fichier Excel
    Par lbrun79 dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/06/2015, 13h52
  2. [AC-2010] Requête ajout d'une durée à une date
    Par Manon.ge dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 14/04/2011, 05h18
  3. ajouter une durée à date de départ
    Par Stéph utilisateur d'acces dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/05/2008, 18h54
  4. Ajouter une durée à une date
    Par agllid dans le forum WinDev
    Réponses: 2
    Dernier message: 20/08/2007, 11h54
  5. [SQL] Ajouter une durée à une date et obtenir une date valide
    Par bigltnt dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/06/2007, 14h55

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