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

Windows Forms Discussion :

[VB.NET] Probleme de Timer


Sujet :

Windows Forms

  1. #1
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut [VB.NET] Probleme de Timer
    Slt à tous,

    J'ai un probleme avec un composant Timer : Lorsque je demarre la minuterie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MonTimer.enabled = true
             MonTimer.start
    et bah elle demarre pas.... : :

    Mais il faut preciser que j'exécute une boucle en mm tps c'est peut etre pour ca que le timer veut pas se lancer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MonTimer.enabled = true
             MonTimer.start
             While ...
     
    .....
     
             End while
    En fait, je voudrais que le timer s'execute tt les secondes ( interval = 1000 ) pendant que le programme execute la boucle... Car certaines variables sont communes dans la boucles et ds le timer...

    Comment remedier à ce probleme ??

    Merci

  2. #2
    Membre actif Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Points : 272
    Points
    272
    Par défaut
    On pourrait avoir le code complet de l'initialisation du timer : (voir tout y compris timer.Interval = 1000)
    PS : Tu as bien définit l'évènement du timer hein ?
    PPS : C'est un System.Windows.Forms.Timer ?
    [Edit] je vais mettre ça sur le dos de la fatigue :
    Ce que tu veux c'est pas plutôt un System.Threading.Timer ?

  3. #3
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    bah j'utilise un timer System.Windows.Forms.Timer mais comme je l'ai selectionner dans la boite a outil et bien le code c'est generer automatiquement donc moi j'ai juste fait un .enabled = true et un .start pour le demarer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub T_Count_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles T_Count.Tick
     
    'execution du code
     
    end sub
    Je capte pas

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    C'est normal, ce timer est un control qui utilise les événements.
    Il n'y a donc qu'un seul thread, les méthodes s'exécutent les une après les autres.

    System.Timers.Timer est une autre classe qui utilise un thread. L'événement timer peut donc s'exécuter "en même temps" que d'autres méthodes.
    Attention, le partage de variables entre threads n'est pas simple!

    PS: DeusXL, c'est quoi la différence entre System.Threading.Timer et System.Timers.Timer ?

  5. #5
    Membre actif Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Points : 272
    Points
    272
    Par défaut
    Citation Envoyé par NicolasG
    PS: DeusXL, c'est quoi la différence entre System.Threading.Timer et System.Timers.Timer ?
    Question rhétorique :
    Pour moi, le résultat est le même, mais la présentation est différente (celle de System.Timers est plus proche de celle de Forms.Timer ...), après aucune idée de s'il faut préférer l'un à l'autre

    System.Timers.Timer est une autre classe qui utilise un thread. L'événement timer peut donc s'exécuter "en même temps" que d'autres méthodes.
    Exact, mais il n'y a pas (sauf erreur de ma part) un thread par timer (je précise...)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Je pense qu'il vaut mieux conseiller aux débutants System.Timers.Timer qui (comme tu l'a dit) est plus proche de System.Windows.Forms.Timer.

    Un très bon article sur le sujet :http://msdn.microsoft.com/msdnmag/is...t/default.aspx

  7. #7
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    System.Timers.Timer est une autre classe qui utilise un thread. L'événement timer peut donc s'exécuter "en même temps" que d'autres méthodes.
    Attention, le partage de variables entre threads n'est pas simple!
    Oui je sais masi j'ai un evenement elapsed et disposed et moi je veux un tick car ma methode doit s'executer toutes les secondes...

  8. #8
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Cher Aspic,
    nos fameux collègues t'ont tout simplement suggéré de faire du multithreading si tu souhaites executer des processus non pas à la suite mais en même temps. Donc direction la Faq VBNet stp et tu trouveras ton bonheur
    Si la boucle dont tu parles est un simple traitement métier (calcul etc...) je te suggère de créer le nouveau thread sur cette procedure en maintenant le timer dans le thread courant

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 31/10/2005, 15h04
  2. [VB.NET] Problème checkBox et datagrid
    Par jagdjg dans le forum ASP.NET
    Réponses: 5
    Dernier message: 23/04/2004, 08h53
  3. [VS.NET] Probleme d'ancrage
    Par krachunka dans le forum Visual Studio
    Réponses: 2
    Dernier message: 22/04/2004, 14h09
  4. [VB.Net] Probleme avec dialogues (confirm et alert)
    Par crackity_jones666 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 26/11/2003, 22h05

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