循环使用Process.GetProccessByName(x)内存泄漏

时间:2012-03-15 21:16:01

标签: vb.net memory-leaks process

我有一个在后台运行的程序,并定期杀死一个进程。我正在使用一个带有Thread.Sleep()调用的简单循环。为了杀死这个过程,我这样做:

Dim arrProcess As Process()
arrProcess = Process.GetProcessesByName("x")

For Each RunningProcess As Process In arrProcess
    RunningProcess.Kill()
Next

问题是,由于某种原因,进程数组没有收集垃圾。我试过了:

For Each p As Process In arrProcess
    p = Nothing
Next
arrProcess = Nothing
GC.Collect()

但无济于事......我会认为只要进程数组超出范围(即循环迭代结束),VB.NET就能够垃圾收集它......相反,这个简单的程序很容易如果我让它运行几个小时(这是我的预期用途),就开始使用Gigs of memory。

不要问我要杀的是什么;-)问题是这里为什么会有内存泄漏。

是的,我正在发布模式中运行,而不是在调试模式下运行。

0 个答案:

没有答案