2014-02-05 212 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的是正确的做法。在你的代码前面调用之前OnTimedEvent火灾

+0

有不看起来有什么东西在这里泄漏 - 你为什么怀疑这是导致泄漏的代码? –

+0

你读过这篇文章 - http://stackoverflow.com/questions/13084585/process-getprocessesbynamestring-string-memory-leak? –

+0

由于它在蚂蚁内存分析器中说它有 – user3264418

回答

0

可能重入问题已完成

尝试,当你进入的方法和重新启用它之后禁止定时器:

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