webbrowser内存释放的问题 ( 积分: 200 )

  • 主题发起人 主题发起人 METALLEE
  • 开始时间 开始时间
M

METALLEE

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序中动态创建了n个webbrowser,访问网页后手动释放(类似腾训的TT)。webbrowser肯定是free掉了,但是内存却没有减少。我看了以前的贴子,好像是webbrowser释放后内存中其访问过的网页却不释放,等待application关闭后才释放。请问有什么办法清空内存?,我看了腾训的TT,当网页全部关闭后内存过一定时间后自己就清掉了。如何做? 分不够可以加
 
在程序中动态创建了n个webbrowser,访问网页后手动释放(类似腾训的TT)。webbrowser肯定是free掉了,但是内存却没有减少。我看了以前的贴子,好像是webbrowser释放后内存中其访问过的网页却不释放,等待application关闭后才释放。请问有什么办法清空内存?,我看了腾训的TT,当网页全部关闭后内存过一定时间后自己就清掉了。如何做? 分不够可以加
 
我也想知道,谢了
也给我一份
 
我用了一个笨方法
在释放webbrowser之前运行如下代码
var
hHTMLText: HGLOBAL;
psi: IPersistStreamInit;
....
try
OleCheck(Webbrowser.Document.QueryInterface(IPersistStreamInit, psi));
OleCheck(psi.InitNew);
psi._Release;
finally
psi := nil;
end;
FreeAndNil(Webbrowser);
情况会稍稍好些, 但是仍然会无端的占用了20兆左右的内存,请问大家有没有好的思路??
 
每天一顶,直到高人出现
 
把所有webbrowser放到一个线程里试试。
 
本来就是在一个线程里的`````
 
我说说每个webbrowser放一个线程,销毁的时候连线程一起。
 
辛苦一顶~
 
帮你顶~~~~~~~~~~~~~~~
 
WebBrowser.Navigate('about:blank');
while WebBrowser.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
WebBrowser.Free;
 
楼上的兄弟,你这个方法好像不行,不信你用Webbrowser打开新浪后用这种方法关闭它。还是会占用将近20兆的内存空间。
好像大家对这些都没什么了解,哎,再看看吧,实在不成后天就把贴子结了
 
后退
顶部