2016-07-26 10 views
0

У меня есть winform, который выполняет поиск файлов и отображение результатов в datagridview. У меня также есть коробки с картинками, которые также отображают файл. Процесс: введите имя файла и нажмите «Поиск», отобразите результаты в сетке и изображениях в окне изображения.Запретить запуск подпрограмм дважды для повышения производительности?

Я хочу, чтобы иметь возможность снова нажимать поиск, но на этот раз, если это тот же файл, я не хочу запускать мой процесс обработки изображений, что приводит к лучшей производительности. Не знаете, как это достичь?

+1

Как мы можем сказать вам, как исправить/оптимизировать свой код, когда нет кода? – Plutonix

ответ

3

Вы можете использовать статическую переменную и установить/проверить его каждый раз, когда вызывается метод:

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

он снова зависает после повторного поиска для того же файла, не заканчивает цикл конца попытки. –

+0

В коде, который я разместил, нет цикла, поэтому я предполагаю, что у вас нет «возврата» где-то в вашем коде? –

+0

Что значит подвешенный? Он может зависать только в цикле, поэтому не может висеть на простой строке кода. –