[英]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.