Thread et recherche recursive
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:
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:
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