Je crée un programme qui trouve des fichiers en double dans un répertoire, mais lorsque le répertoire qu'il recherche contient trop de ces fichiers, il plante l'application. Je me demandais s'il y avait un moyen d'amortir la quantité de fichiers qu'il attrape. Voici le code qui fait la chose que je vous explique:L'ajout de nombreux éléments à la liste de sélection gèle l'interface utilisateur
string[] filePathsb = Directory.GetFiles(
@"" + Dirfind, "*" + filetyperest, SearchOption.AllDirectories);
for (int i = 0; i < filePathsb.Length; i++)
{
ListBoxItem itm = new ListBoxItem();
try
{
List<TodoItem> items = new List<TodoItem>();
filelistboxitem.Items.Add(new TodoItem() { Title = "" + filePathsb[i], Deletea = "" + i });
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show("Error occurance: " + ex);
}
}
Juste une remarque: cela fonctionne très bien quand il y a environ 50 < fichiers.
Define "planter l'application". L'ajout de 50 éléments, ou même 200, à une liste ne devrait pas causer de problèmes. L'ajout de milliers d'éléments à une zone de liste peut être un problème (en plus d'être une expérience utilisateur médiocre). Avez-vous une exception (détails?), Le programme se verrouille-t-il, ou quoi exactement? –
Je ne reçois aucune exception de ce que je pense qu'il arrive quand je fais ceci: 'string [] filePathsb = Répertoire.GetFiles (@ "" + Dirfind, "*" + filetyperest, SearchOption.AllDirectories);' – andrew196
de sorte que le blocage ne fait que geler la fenêtre lorsque j'exécute la fonction – andrew196