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 :

Améliorer les performances


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut Améliorer les performances
    Bonjour,

    Dans le cadre de mon boulot, je développe un outil de monitoring maison.
    L'idée c'est de représenter dans l'interface graphique chaque serveur/poste client par un bouton qui se met en vert/orange/rouge selon l'état.
    Un clic sur le bouton lance un diagnostique rapide, par exemple, le service x ne tourne pas.

    J'ai donc des fonctions qui servent à vérifier qu'un service windows ou un process tourne sur une machine selon son ip.

    Ces fonctions sont appelées via des timers qui tournent toutes les 60 secondes.

    Le problème, c'est que j'en ai tellement que quand le code caché dans ces timers s’exécute, l'interface graphique ne répond plus et je me retrouve à attendre plusieurs secondes avant de voir l'effet d'un clic sur un bouton.

    Comment améliorer le code et/ou l'interface pour le plus avoir ce problème ?

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    les system.windows.forms.timers ont leur event Tick sur le thread principal
    le rafraichissement de l'interface se fait sur le thread principal
    le thread principal ne peut etre qu'à un endroit à la fois, donc pendant l'exécution d'un timer pas de rafraichissement, si tu as plein de timer ou des traitements de plusieurs centaines de ms alors l'interface est freezée pendant ce temps

    le mieux est donc de déporter les traitements qui peuvent l'etre sur d'autres threads
    voir ce qui te convient le mieux parmi :
    - async/await
    - threadpool
    - backgroundworker
    - system.thread (avec éventuellement while true+thread.sleep)
    - system.threading.timer / timers.timer

    (impossible de modifier l'ui depuis un thread autre que le thread principal)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut
    Cool merci,
    J'ai déjà entendu ce mot.... mais je ne sais pas ce qu'il se cache derrière...
    bien qu'avec ton post je commence déjà à comprendre

    Je vais me documenter sur cette chose et voir comment la mettre en place.

  4. #4
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut
    Merci pour la réponse, c'est exactement ce qu'il me fallait !

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

Discussions similaires

  1. Améliorer les performances d'Hibernate
    Par minimarch76 dans le forum Persistance des données
    Réponses: 4
    Dernier message: 22/08/2007, 10h01
  2. Optimisation de jsp pour améliorer les performances
    Par djuddju dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 01/12/2006, 05h50
  3. Réponses: 2
    Dernier message: 01/08/2006, 10h20
  4. [IW][D7] améliorer les performances
    Par Magnus dans le forum Bases de données
    Réponses: 19
    Dernier message: 11/10/2005, 20h46

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