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

C# Discussion :

Threads : Gestion de la mémoire


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par défaut Threads : Gestion de la mémoire
    Bonjour,

    J'ai créé une petite appli qui, au lancement se met en barre des taches afin de tourner en arrière plan. Le but de cette appli, modifier un paramètre de la base de registre de mes postes clients toutes les 5 min.

    J'ai donc du code de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            Thread myThread;
            public Form1()
            {
                InitializeComponent();
     
                myThread = new Thread(new ThreadStart(UpdaterRegistryDatabase));
                myThread.Start();
            }
    et dans mon Thread, j'ai une boucle du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while (Thread.CurrentThread.IsAlive)
    {
        //mon code de mise a jour de base de registre
        Thread.Sleep(300000);   //J'attends 5 min
    }
    Ma question est : Comment éviter qu'après 8h de lancement, le programme n'utilise toute les ressources mémoires de mon ordinateur ?
    Ai-je autre chose à effectuer ?

    Merci d'avance,

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    il me semble qu'avec le scheduler de windows tu peux lancer une application de façon répétitive.. peut-etre est-une meilleure solution ?

    Il me semble que la problématique a déja été abordé dans ce forum

  3. #3
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Bonjour,

    Si tu fais tourner ton programme sans la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //mon code de mise a jour de base de registre
    , alors tu n'auras pas de problèmes de ressources.
    Ce qui voudrais dire que ton code de mise à jour de la base de registre créé de façon répétitive des ressources qu'il ne libère pas.

  4. #4
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut.

    Ça n'a rien à voir, mais si ton traitement doit être effectué toutes les cinq minutes, et ce durant toute la durée où la session sur le poste client est ouverte, tu ferais peut-être mieux de créer un service Windows (à fortiori si tu lances ton application en arrière plan et qu'il n'y a aucune interaction avec l'utilisateur).

    Après, je rejoins abelman, il s'agit très probablement de ressources non libérées dans ta méthode UpdaterRegistryDatabase. Y a-t-il moyen que tu montres le corps de cette méthode ?

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    De plus, si tu dois faire une action de manière périodique, un Timer est plus indiqué qu'un thread.

Discussions similaires

  1. Gestion de la mémoire douteux dans un thread
    Par kollyv dans le forum C#
    Réponses: 14
    Dernier message: 01/05/2007, 16h51
  2. Réponses: 17
    Dernier message: 02/02/2006, 12h03
  3. Réponses: 11
    Dernier message: 26/12/2004, 22h50
  4. Gestion de la mémoire entre plusieurs DLL
    Par Laurent Gomila dans le forum C++
    Réponses: 7
    Dernier message: 27/07/2004, 15h28
  5. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 12h44

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