2012-05-15 31 views
0

Windows Phone 7.5(Mango)::使用Hardware键从页面导航回到上一页时,假设Page2和Page1页面的析构函数没有触发。所有遍历页面的析构函数在退出应用程序时触发。任何人,请帮助我这个?Windows Phone 7.1(芒果)::页面析构函数未触发

+0

为什么你需要这个? – besworland

+0

在C#中,析构函数重写Object.Finalize方法。如果您需要释放非托管资源,则只应覆盖此方法。此外,只有在垃圾收集期间回收对象时才会调用终结器。您不应将您的应用程序逻辑基于终结器/析构函数。 –

回答

0

您可以在您的网站上捕获OnBackKey事件以检查其导航回。那么你应该具有与你想要的析构函数相同的功能

0

如果你的问题是垃圾收集器不收集那个页面,那很可能是因为你没有从导航的事件中取消订阅每个事件。

0

如果destructopr从来没有(*)被解雇,那么这是因为某事持有对它的引用。就像伊戈尔所说,这可能是一个事件。

或者您重写OnBackKeyPress而不是返回,您可以前进到Page1。在这种情况下,后台将保持对Page2的引用。

(*)请注意,在GarbageCollector运行之前不会调用析构函数。即使你的代码是完美的,你也许需要一些Page1-> Page2导航才能实现。

0

检查您是否没有任何带有静态字段的类实例。 你最好的朋友是调试器。 放在backKeyPress事件的顶部

if (Debugger.IsAttached) 
{ 
    Debugger.Break(); 
} 

这个代码,然后添加的手表,可以防止析构函数调用的任何变量。

相关问题