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

Dotnet Discussion :

System.Timer.Thread vs System.Timers.Timer [Débutant]


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 132
    Par défaut System.Timer.Thread vs System.Timers.Timer
    Bonjour,

    J'aimerai bien savoir la différence entre un timer de System.Timer.Thread et un timer de System.Timers.Timer

    Quelle est la meilleure méthode pour pouvoir garder la main sur l'IHM?

    Désolé: peut être c'est une question trop large.

    Merci de vos réponses.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,
    Effectivement, la question est un peu large. Tout dépend de ce que tu feras dans ce Timer.
    Globalement ces deux types de timer sont à peu près les mêmes. D'ailleurs il y a un System.Threading.Timer derrière le Timers.Timer. Il travaillent tous les deux dans un thread séparé. La principale différence est que le Timers.Timer propose une propriété SynchronizingObject qui permet à l'event de s'exécuter dans le même thread de la Form.
    Je ne suis peut-être pas très clair. Précise un peu ce que tu veux faire, ce sera plus simple.

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 132
    Par défaut
    Merci pour la réponse!

    Moi, je veux bien créer 3 tâches qui tournent en permanence tout en gardant la main sur le reste l'IHM.

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Ok alors ce ne sont probablement pas des timers qu'il te faut mais plutôt des Thread. Regarde du coté de la classe Thread ou éventuellement BackgrounWorker.
    N'hésite pas si tu as des questions.

  5. #5
    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,

    Les deux sont proches. Voic les différences notables.

    System.Timers.Timer
    • génère un événement à intervalle régulier. Sur cet événement, il est possible d'avoir 0, 1 ou plusieurs callback, et de modifier en cours de route les callback appelés (on peut en enlever, en rajouter, etc...) ;
    • Cette classe n'est disponible que dans le Framework .Net classique ;
    • Cette classe n'est pas threadsafe, c'est-à-dire qu'il est potentiellement dangereux de manipuler le timer depuis plusieurs threads.



    System.Threading.Timer
    • appelle une méthode à intervalle régulier. Cette méthode est définie lors de l'instanciation du timer et ne peut pas être modifiée.
    • Cette classe est disponible dans toutes les versions du Framework .Net (version "classique", .NetCore, Universal Windows Plateform, etc...)
    • Cette classe est threadsafe.


    Voilà pour les grosses différences.

    Citation Envoyé par ebastien
    Ok alors ce ne sont probablement pas des timers qu'il te faut mais plutôt des Thread. Regarde du coté de la classe Thread ou éventuellement BackgrounWorker.
    N'hésite pas si tu as des questions.
    Tout dépend de ses besoins, et de ce qu'il entend par "en permanence" :
    • s'il s'agit de tâches périodiques, alors l'utilisation de timer est tout à fait justifiée ;
    • s'il s'agit de tâches tournant en permanence (=nécessite du CPU tout le temps), alors un Thread, un BackgroundWork ou un Task seront certainement plus appropriés.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/09/2008, 10h51
  2. Timer,Thread et barre d outil
    Par jhdscript dans le forum C++Builder
    Réponses: 4
    Dernier message: 28/11/2006, 12h20
  3. Réponses: 1
    Dernier message: 09/08/2006, 16h04
  4. [Info]Sequenceur fiable: Timers, Threads
    Par vienin dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 15/07/2005, 00h08
  5. [Thread] Probleme avec mon Timer
    Par Nico66 dans le forum EDT/SwingWorker
    Réponses: 10
    Dernier message: 02/06/2005, 17h10

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