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 :

Question sur le Timers.Timer


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut Question sur le Timers.Timer
    Bonjour,

    Quelqu'un peut-il m'expliquer a qui sert la propriete "AutoReset" ???
    J'a un autre petite question...
    Admettons que mon timer.Interval = 5000 et que mon traitemant dur 8 secondes(par exemple), comment cela est-il gere ???

    Merci pour vos reponses !

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Timer.AutoReset

    Citation Envoyé par Elwe31 Voir le message
    Admettons que mon timer.Interval = 5000 et que mon traitemant dur 8 secondes(par exemple), comment cela est-il gere ???
    tu veux dire, si tu fais un traitement de 8 secondes dans l'événement tick de ton timer ? Ben pour le tick suivant tu en aura deux qui seront appellés aussi tôt que possible sans respecter l'intervale, juste dans le but de rattraper le retard.

  3. #3
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    Ok, merci pour le lien.

    C'est pas "tick" mais "Elapsed"... Ok, il ne va donc pas lancer le traitement si il y a deja un traitement en cours ? il attends que l'autre est fini ? c'est bien ça ?

    C'est quoi la difference entre les timers:
    - Timers.Timer et le forms.timer
    ????

    Merci encore

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par Elwe31 Voir le message
    C'est pas "tick" mais "Elapsed"...
    Je faisait référence à ça en fait ...
    Timer.Tick

    Bon sinon on dirait que je me suis un peut perdu
    Bon après tests (j'ai voulu avoir le coeur net).
    Avec System.Windows.Forms.Timer :
    Ton event est toujours appelé sur le thread de la form, tu peut donc accéder aux contrôles de celle ci et tu as aussi l'assurance, tant que tu n'appelles pas Application.DoEvents, que le timer attendra la fin de l'exécution du code de l'évènement tick avant d'en générer un nouveau.

    Avec System.Threading.Timer :
    J'ai obtenu un autre comportement, le callBack est appelé avec l'intervalle que je lui ai donné, mais sans se soucier du fait que le précédent appel ai été terminé. On est donc plusieurs fois dans la même fonction .... En effet, à chaque fois que le callback doit être appelé il crée un nouveau thread et l'exécute, donc pour accéder aux composants de la fenêtre il faut faire un this.Invoke (pour passer l'appel sur le bon thread).

  5. #5
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    Merci beaucoup pour ces precisions...(je pige mieux pourquoi ça merde grave!!!) et c'est ce que j'avais imaginé...

    Il y a encore un autre timer : System.Threading.Timer ??????
    C'est la fete

    Merci encore pour le temps passé.

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    le code dans un evenement doit toujours etre très rapide
    perso je conseille les windows forms timer, avec les timers.timer étant sur d'autre threads ca peut créer des problèmes
    sinon en général, dans l'event d'un timer on fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    try
        timer.stop
        ' traitement
    catch ex as exception
        'enregistrer l'erreur c'est pas mal 
    finally
        timer.start
    end try
    ca évite le problème du traitement plus long que la durée du timer

    de toute facon si ton traitement prend plusieurs secondes, celui va figer l'interface utilisateur, donc autant déporter les traitements dans un thread secondaire
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    C'est pour un service...
    Et j'avais un probleme d'ecriture dans un fichier...
    Enfin, c'est regler, j'ai utilisé une variable pour savoir si le traitement est fini ou pas...

    Enfin, voila, je vous remerci pour ces info !

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

Discussions similaires

  1. Démarrer un thread sur méthode evenement (timer)
    Par FruitSellers dans le forum C#
    Réponses: 1
    Dernier message: 23/05/2014, 10h21
  2. Question sur timer
    Par simonplus dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 23/03/2012, 23h35
  3. [CS5] Question sur les timers
    Par Ashraam dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 16/11/2011, 08h17
  4. [C#] ptite question sur timer
    Par moulefrite dans le forum Windows Forms
    Réponses: 5
    Dernier message: 06/06/2006, 10h24
  5. Petite question sur timer
    Par nou366 dans le forum Delphi
    Réponses: 2
    Dernier message: 12/05/2006, 18h50

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