【问题标题】:Memory Leak in IE WebBrowser ControlIE WebBrowser 控件中的内存泄漏
【发布时间】:2013-08-02 00:52:59
【问题描述】:

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

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

还有另一个帖子(这里:How to Fix the Memory Leak in IE WebBrowser Control?How to get around the memory leak in the .NET Webbrowser control?)建议从KERNEL32.DLL 调用“SetProcessWorkingSetSize”。

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

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

【问题讨论】:

标签: c# winforms internet-explorer memory-leaks watin


【解决方案1】:

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

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

    EmptyWorkingSet(GetCurrentProcess());
}

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

【讨论】:

    猜你喜欢
    • 2013-12-29
    • 2012-07-30
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多