我已经测试了我的应用程序的内存使用情况,突然看到内存出现峰值,当我加载弹出窗口时,在我尝试关闭它之后它似乎没有下降。
我从第一页cs文件(我离开的那个)添加弹出窗口:
Popup popup;
if (!SecondScreen.SecondScreenLoaded)
{
Popup PopupTest = new Popup();
PopupTest.IsOpen = true;
LayoutRoot.Children.Add(PopupTest);
}
当第二页完成后,我希望删除弹出窗口,从而释放内存 因此我不确定如何在c#中正确删除弹出窗口,有人可以告诉我这个吗?
答案 0 :(得分:0)
我永远不会在Windows手机上使用本机弹出窗口挖掘应用程序,也许你可以使用coding4fun工具包来实现类似的功能。它包含弹出样本,你可以查看该控件。
http://coding4fun.codeplex.com/
答案 1 :(得分:0)
好的,事情是每次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;
}