2014-02-05 3 views
0

Эй, у меня есть это консольное приложение, которое должно работать в течение более длительных периодов времени, одна из его функций - обнаружить определенный процесс, но он протекает в этой части.Обнаружение протекающего процесса памяти утечки

Я использую это в качестве таймера для обнаружения:

Private Sub OnTimedEvent() Handles mytimer.Elapsed 
     If Process.GetProcessesByName(Gname).Length = 1 Then 
      misRunning = True 
     Else 
      misRunning = False 
     End If 
    End Sub 

GC.Collect бы помочь, но я не уверен, что вызов GC.Collect это правильный подход.

+0

Там не похоже, что здесь есть что-то утешительное - почему вы подозреваете, что это код, вызывающий утечку? –

+0

Вы прочитали эту статью - http://stackoverflow.com/questions/13084585/process-getprocessesbynamestring-string-memory-leak? –

+0

Beacause говорит, что в ANTS Memory Profiler это – user3264418

ответ

0

Возможные проблемы повторного entrancy в коде OnTimedEvent пожаров до предыдущего вызова закончило

Попробуйте отключить таймер, когда вы вводите метод и повторное включение его впоследствии:

Private Sub OnTimedEvent() Handles mytimer.Elapsed 
    myTimer.Enabled = False 
    If Process.GetProcessesByName(Gname).Length = 1 Then 
     misRunning = True 
    Else 
     misRunning = False 
    End If 
    myTimer.Enabled = True 
End Sub 
+0

Не помогло :( – user3264418

Смежные вопросы