2

在 C# 中,我将其用作 Web 浏览器控件(Watin 浏览器控件),在其中将此控件运行到主线程的另一个线程中。

几个小时后,就会产生内存泄漏。

还有另一篇文章(这里:如何修复 IE WebBrowser 控件中的内存泄漏?如何解决 .NET Webbrowser 控件中的内存泄漏?)建议SetProcessWorkingSetSize从 .NET 调用“” KERNEL32.DLL

解决方法是最小化 web 浏览器控件的 winform。

所以我的问题是:如果有另一种方法来解决这个问题?如果没有,如果我使用像 mozilla-gecko 这样的替代网络浏览器控件,我将解决这个内存泄漏问题。

4

1 回答 1

4

解决方案是调用垃圾收集器并强制 Windows 操作系统清理内存。例如进入 finally 你可以写:

finally
{
    GC.Collect();
    GC.WaitForPendingFinalizers();

    EmptyWorkingSet(GetCurrentProcess());
}

EmptyWorkingSet强制操作系统清理内存。

于 2013-09-06T12:09:40.467 回答