Bonsoir à tous,
J'aimerais améliorer la vitesse d’exécution de mon code mais je ne sais pas comment faire. Celui-ci lit environ 60000 dossiers et 600 fichiers,
les noms de dossiers sont stockés dans 2 listes 'CarSetupsListe' et 'TracksSetupListe', les fichiers sont stockés dans 'Setups'.
Ça prends environ 10s sur mon PC portable et bien que s’exécutant en tache de fond, cela ne rends pas l'interface disponible tout de suite pour cette partie du programme.
Les dossiers à lire sont organisés de cette façon :
Car1/Track1/xxxxxx.ini
Car1/Track2/xxxxxx.ini
....
Car2/Track1/xxxxxx.ini
Car2/Track2/xxxxxx.ini
....
J’espère que vous pourrez m'aider car je ne vois vraiment pas comment faire....
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
33 Private Sub LoadDataSetups() Setups.Clear() CarsSetupsListe.Clear() TracksSetupsListe.Clear() ' Chargement de la liste des Voitures et Circuits dans les listes : Dim countCarFolder As Integer Dim TotaleSetupsFolder As Integer = Directory.GetDirectories(Options.AC_Doc_Directory & "\setups").Length For Each CarFolder As String In Directory.GetDirectories(Options.AC_Doc_Directory & "\setups") countCarFolder += 1 Dim CarName As String = Path.GetFileName(CarFolder) If Not CarsSetupsListe.Contains(CarName) Then CarsSetupsListe.Add(CarName) End If For Each TrackFolder As String In Directory.GetDirectories(CarFolder) Dim TrackName As String = Path.GetFileName(TrackFolder) If Not TracksSetupsListe.Contains(TrackName) Then TracksSetupsListe.Add(TrackName) End If For Each FileSetup As String In Directory.GetFiles(TrackFolder) Dim Fi As New FileInfo(FileSetup) If Fi.Extension.ToLower = ".ini" Then Setups.Add(FileSetup, New Setup(FileSetup, CarName, TrackName)) End If Next Next Dim Progress As Integer = CInt(100 * countCarFolder / TotaleSetupsFolder) bgwLoadSetups.ReportProgress(Progress, String.Format("Chargement des Setups ({0}%)", Progress)) Next CarsSetupsListe.Sort() TracksSetupsListe.Sort() End Sub
Partager