繁体   English   中英

内存泄漏Windows Phone

[英]Memory Leak Windows Phone

我正在解析KML文件以显示路由,但是我内存不足并且应用程序终止可以有人帮助我解决此问题

public void DisplayRoute(int i)
        {
            content = new KmlContent();
            info = Application.GetResourceStream(new Uri("/AppStudio;Component/Resources/kml", UriKind.Relative));
            data = content.DeserializeKml(info.Stream);
           if (data.Document.Placemarks[i].LineString != null)
                {
                        routeQuery = new RouteQuery();
                        routeQuery.Waypoints = content.ParseLocation(data.Document.Placemarks[i].LineString.Coordinates);
                        routeQuery.QueryAsync(); 
                        routeQuery.QueryCompleted += routeQuery_QueryCompleted;
                }
           else
           {
               return;
           }
        }

        int count = 0;
        public void routeQuery_QueryCompleted(object sender, QueryCompletedEventArgs<Route> e)
        {
            if (e.Error == null)
            {
                Route MyRoute = e.Result;
                MapRoute mappedRoute = new MapRoute(MyRoute);
                MainMap.AddRoute(mappedRoute);
                MainMap.SetView(mappedRoute.Route.BoundingBox);
                routeQuery.Dispose();
                count++;
            }
            DisplayRoute(count);
        }

第一次运行时,将显示路线,当我导航到起始页面然后返回到地图时,内存不足

问题是您永远不会释放从Application.GetResourceStream获得的流。 将您的代码更改为

using (info = Application.GetResourceStream(new Uri("/AppStudio;Component/Resources/kml", UriKind.Relative)))
{
    //rest of the code using info variable
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM