在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?)建议从SetProcessWorkingSetSize
拨打“KERNEL32.DLL
”。
解决方法是尽量减少网络浏览器控制的胜利。
所以我的问题是:如果有另一种方法可以解决这个问题?如果没有,如果我使用像mozilla-gecko这样的替代网络浏览器控件,我将解决这个内存泄漏问题。
答案 0 :(得分:3)
解决方案是调用垃圾收集器&强制Windows操作系统清理内存。例如,最后你可以写:
finally
{
GC.Collect();
GC.WaitForPendingFinalizers();
EmptyWorkingSet(GetCurrentProcess());
}
EmptyWorkingSet
强制操作系统清理内存。