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 :

[C# 2.0] Comment supprimer un objet dans une liste ?


Sujet :

C#

  1. #1
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut [C# 2.0] Comment supprimer un objet dans une liste ?
    Bonjour à tous,

    voilà, j'ai une classe qui doit gérer une liste de threads et un filewatcher, et je suis un peu perdu.

    Je dois surveiller un dossier (avec un FileSystemWatcher ), et à chaque modif sur un fichier, je dois lancer un nouveau thread. Mais je dois garder un 'lien' sur ces threads pour pouvoir les arrêter quand je veux. C'est pour ça que je les stocke dans une List.

    Voici à quoi ressemble ma classe pour l'instant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    using System.Threading;
     
    namespace Toto
    {
        public class MaClasse
        {
            MaClasse(String watchDir)
            {
                fsWatcher = new FileSystemWatcher(watchDir); //le watcher surveille le dossier (watchDir)
     
                fsWatcher.Renamed   += new RenamedEventHandler      (fsWatcher_Renamed); //lorsqu'un fichier contenu dans le dossier surveillé est  renommé, la fonction fsWatcher_Renamed sera appelée
            }
     
            void fsWatcher_Renamed(object sender, RenamedEventArgs e)
            {      
                Thread newThread = new Thread(new ThreadStart(RenamedThread)); //je créé un nouveau thread
                threadList.Add(newThread); //j'ajoute le thread à ma liste
                newThread.Start(); //je lance le thread
            }
     
            void RenamedThread()
            {
                 outclass.unefonction(); //entouré d'un try/catch etc.
                 ///////////////////////////////////////////////////////////////
                 /// COMMENT SUPPRIMER LE THREAD DE LA LISTE?
            }
     
            private List<Thread> threadList; //liste des threads
            private FileSystemWatcher fsWatcher; //'surveilleur' de dossier
            private OutClass outclass; //une class 'exterieure' récupérée par une dll (avec Assembly.LoadFrom() )
        }
    }
    Voilà, ma question est dans la méthode RenamedThread: Comment supprimer le thread de la liste. En effet, une fois que outclass.unefonction(); est terminé, le thread sera automatiquement tué (si j'ai bien compris, puisque on sort de la fonction qui correspond au thread), il faut donc supprimer le thread de ma liste. Ca parait bête comme chou, mais je ne vois pas comment faire. En c++, c'était simple, on avait un ID sur chaque Thread. Mais là...

    J'espère que je suis clair
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  2. #2
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Citation Envoyé par r0d
    Comment supprimer le thread de la liste..... Ca parait bête comme chou...
    Effectivement : il faut utiliser la méthode Remove de la List

Discussions similaires

  1. Comment supprimer des "0" dans une liste
    Par solorac dans le forum Excel
    Réponses: 4
    Dernier message: 04/09/2007, 12h22
  2. Comment Manipuler des objets dans une liste de type TList ?
    Par PadawanDuDelphi dans le forum Delphi
    Réponses: 1
    Dernier message: 02/11/2006, 15h40
  3. comment supprimer les évenement dans une css
    Par etrevilly dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 25/04/2006, 12h37
  4. comment supprimer un champ dans une requete ??
    Par loran v2 dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/03/2006, 20h41
  5. [vbexcel]Comment supprimer les doublons dans une combobox?
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 24/11/2005, 11h12

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