web浏览器(VCL)内存泄漏的Windows 2008R2

问题描述 投票:0回答:1

我有一个TWebBrowser形式下降就可以了。当窗体打开会发生以下情况:

procedure TRouteMapView.FormShow(Sender: TObject);
begin
  RouteMapView.Caption := 'Transport XLR - ' + Main.GlobalSite;
  WebBrowser1.Navigate('https://****/map_only/' + TID);
end;

这会将为优化路由动态地图。问题是,如果我关闭窗体地图满载前,不会释放内存。即使我等待,直到它完全加载并非所有的内存被释放。

我试着按照Formclose没有任何成功:

WebBrowser1.Stop;
WebBrowser1.Navigate('about::blank');
WebBrowser1.Free;

奇怪的是,我无法重现在Windows 10中的问题,但我必须支持Windows 2008R2。

任何想法我可能会丢失吗?

更新1

我试图创建应用程序启动的RouteMapView窗体,然后只显示并在必要时将其隐藏。不幸的是,“泄漏”仍然存在,它甚至更糟。我也试着等到web浏览器完成,一旦与readyState的,一旦有繁忙,似乎做一些事情。但我想那该死的网站正在执行许多的脚本在后台即使它说做它没有这样做。我也想过,也许该网站本身是罪魁祸首。所以,我把它改为www.microsoft.com(我的意思是如果泄漏则没关系:)),但它没有泄漏。

所以我开始考虑写一个小应用程序,它什么也不做,但显示的地图,然后就关闭。我把它根据需要和等待它。

然后我意识到,当我关闭我的应用程序完全...内存不被释放的时候,因为当我开始另一个程序再次一切工作正常,即使我之前达到1.5GB标志。

我的知识是有限的在这里,但它是可以检测的Internet Explorer的情况下被我计划开始,简单地强制终止它们?

delphi memory-leaks windows-server-2008-r2 twebbrowser
1个回答
0
投票

我在这里创建了一个小程序,不从我的主要用途无非是工艺参数,并显示在Web浏览器的结果。

至于我可以告诉我没有更多的内存泄漏。

我注意到,与外部程序,有时当我把它叫做我收到了错误的东西有关fwpuclnt.dll有时dhcpcsv6.dll。

我是这样做的Form.OnShow导航,所以我切换而不是一个计时器,当程序开始我等待2秒钟,然后我尝试导航。关于两个dll的偏误,现在都没有了。我只从Internet Explorer本身有时会收到一个错误,无法定位到页面上,单击刷新。否则,它是好的。

哦,我忘了说,这是一个Windows 2008 R2终端服务器。

至于罗伯特

© www.soinside.com 2019 - 2024. All rights reserved.