2016-07-26 3 views
0

J'ai une winform qui fait la recherche de fichiers et affiche les résultats dans une vue de données. J'ai aussi des boîtes d'images qui affichent le fichier aussi. Le processus: entrez le nom du fichier et cliquez sur Rechercher, affiche les résultats dans la grille et les images dans la zone d'image. Je veux être en mesure de cliquer à nouveau sur la recherche, mais cette fois si c'est le même fichier, je ne veux pas exécuter mon processus d'image, ce qui entraîne de meilleures performances. Vous ne savez pas comment y parvenir?Empêche l'exécution de sous-routines deux fois pour améliorer les performances?

+1

Comment pouvons-nous vous dire comment fixer/optimiser votre code quand il n'y a pas de code? – Plutonix

Répondre

3

Vous pouvez utiliser une variable statique et régler/vérifier chaque fois que la méthode est appelée:

Public Sub SearchForFile(filename As String) 
    Static lastFile As String = Nothing 
    Try 
     'don't run again if the same file is searched for 
     If lastFile = filename Then Return 

     'do your file searching here 
    Finally 
     'always set the last filename to the one we just searched for 
     lastFile = filename 
    End Try 
End Sub 
+0

il se bloque après avoir cherché à nouveau pour le même fichier, ne se termine pas la boucle d'essai de fin. –

+0

Il n'y a pas de boucle dans le code que j'ai posté, donc je devine que vous n'avez pas un 'retour 'quelque part dans votre code? –

+0

Que voulez-vous dire par raccroché? Il ne peut que se bloquer dans une boucle, donc ne peut pas s'accrocher à une simple ligne de code. –