Bonjour, je developpe un programme pour lequel je dois scanne mes dossiers afin de localiser des fichiers vidéo
J’aichoisis l'approche de creation de thread,afin d’éviter un souci de fige pendant la recherche au niveau du programme et de la liste contenant les fichiers
voici ou j'en suis .
j'ai un bouton qui permet de sélectionner l'emplacement des répertoires contenant les films
Voici le code qui si rapporte
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
 
 private void Bemplacement_Click_1(object sender, EventArgs e)
        {
            //Creation folderbrowser
            FolderBrowserDialog folderDlg = new FolderBrowserDialog();
 
            folderDlg.ShowNewFolderButton = true;
 
            // Montre le FolderBrowserDialog.
 
            DialogResult result = folderDlg.ShowDialog();
            // Si le bouton selectionnez est ok >
            if (result == DialogResult.OK)
            {
 
                Trepertoire.Text = folderDlg.SelectedPath;
 
                Environment.SpecialFolder root = folderDlg.RootFolder;
 
                //Effacement de la liste
                emplacement = null;
                //lance la recherche recursive
                recherche = new Thread(new ThreadStart(ThreadMethod));
               recherche.Start();
 
               }
 
 
 
 
        }
ce bouton créée donc un thread qui va lancé la recherche , je pensais derrière avec un timer cloner la liste ou autre car je dois gérer la presence ou pas du fichier NFO

Mais voila ou je bloque j'effectue une recherche recursive, donc j'ai modifie et allége le code de la recherche

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
private void ThreadMethod()
        {
            string sdir = Trepertoire.Text;
            string pattern = "*.avi";
            try
            {
 
                foreach (string f in Directory.GetFiles(sdir, pattern))
                {
 
                 emplacement.Add(f);
 
                }
 
                foreach (string d in Directory.GetDirectories(sdir))
                {
                   //VOILA LE PROBLEME 
 
                  DirSearch(d, pattern);
 
 
                }
            }
            catch (System.Exception excpt)
            {
                MessageBox.Show(excpt.Message);
            }
        }
Le souci se situe au niveau de la recursivité de la recherche, est ce que je dois cree un tread par recherche?? deja que je pense en cree deux en parallele pour gere l'extention du fichier et dans ce cas la comment les incrementer?

merci de vos reponse