Recherche et .Update()

Psychotronic Messages postés 21 Date d'inscription mardi 17 juillet 2007 Statut Membre Dernière intervention 17 décembre 2008 - 21 févr. 2008 à 02:56
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 22 févr. 2008 à 09:25
Bonjour,

Je crée actuellement un programme expérimental de recherche de fichiers et j'ai le problème suivant. Lorsque je recherche des fichiers dans un dossier, j'écris immédiatement les résultats dans des TextBox (nombre de fichiers acceptés, ignorés et nombre d'erreurs). Pour que le texte de ces TextBox s'affiche, je dois les actoaliser avec la méthode .Update(). L'ennuis est que pour une recherche d'environ 60 000 fichiers, le temps de recherche est de 146 secondes alors que sans l'actualisation des TextBox, le temps de recherche est de 35 secondes. J'ai pensé à exécuter la recherche sur un nouveau thread mais j'ai rejeté cette option étant donné la quantité d'informations que je dois envoyer immédiatement à ma fenêtre. Y aurait-il une fonction plus rapide que .Update() pour actualiser mes contrôles ? Merci d'avance ;)

3 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
21 févr. 2008 à 08:56
Bonjour

J'utilise dans ce cas une technique simple, en utilisant Environment.TickCount (Durée de fonction depuis le dernier démarrage en ms), avant de mettre à jour les infos :

If lLastAffichage+1000>Environment.TickCount Then '1000 pour 1 sec entre 2 rafraichissement.
    lLastAffichage=Environment.TickCount
    'Code de MAJ de l'affichage
End if

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
Psychotronic Messages postés 21 Date d'inscription mardi 17 juillet 2007 Statut Membre Dernière intervention 17 décembre 2008
21 févr. 2008 à 21:22
Je comprend pas. J'ai testé la fonction et rien ne se passe : la variable + 1000 est inférieur à TickCount... Est-ce que je peux avoir plus d'explications ?
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
22 févr. 2008 à 09:25
Bonjour

Au lieu de mettre ton affichega à chaque fois, tu met ton affichage (avec ton .Update) dans la partie du code :
'Code de MAJ de l'affichage

La variable lLastAffichage est de type Integer et doit être mémorisée durant tout le traitement (éventuellement voir pour la mettre en attribut).

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
Rejoignez-nous