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:
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à...
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() ) } }
J'espère que je suis clair
Partager