簡體   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