[英]Delete Popup in Silverlight for Windows Phone 8
我已经测试了我的应用程序的内存使用率,突然发现加载弹出窗口时内存出现峰值,而且在我尝试关闭它后,它似乎没有消失。
我从第一页的cs文件(我离开的那一个)中添加了弹出窗口:
Popup popup;
if (!SecondScreen.SecondScreenLoaded)
{
Popup PopupTest = new Popup();
PopupTest.IsOpen = true;
LayoutRoot.Children.Add(PopupTest);
}
当第二页完成后,我希望删除弹出窗口,从而释放内存,因此我不确定如何在c#中正确删除弹出窗口,有人可以告诉我吗?
我从不使用Windows Phone上的本机弹出窗口来挖掘应用程序,也许您可以使用encoding4fun工具包来实现类似的功能。 它包含弹出示例,您可以查看该控件。
http://coding4fun.codeplex.com/
好的,事情是每当SeconeScreenLoaded为true时,您都在创建一个新的Popup对象。
Popup PopupTest = new Popup();
对于关闭弹出窗口,我猜您正在使用:
PopupTest.IsOpen = false;
这样,您实际上仅更改了IsOpen属性,但没有将其从内存中删除。 我们假定GC将对其进行处理,但是GC仅在不使用其引用的情况下才考虑它。 因此,在关闭弹出窗口时,请将null分配给该对象,以允许GC在以后收集它。
if(PopupTest!=null && PopupTest.IsOpen = true)
{
PopupTest.IsOpen = false;
PopupTest = null;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.