释放自定义用户控件的内存

时间:2014-12-12 09:17:33

标签: c# wpf xaml memory garbage-collection

我在Windows Phone应用中使用了实时平铺用户控件。我在XAML页面中使用了10个控件实例(从代码初始化)。当我导航回父XAML页面时,为所有10个磁贴控件分配的内存不会被释放。

具有10个活动Tile的子页面的RAM使用率为60 MB。当我导航回父页面时,内存最多可拍摄120 MB和Garbage collector does not reduce memory usage

此外,在2-3页导航后,应用程序内存使用量将拍摄到180 MB并崩溃。

如何销毁此usercontrol?它有2 Grid,其中一个Image和4 Storyboard,它们在循环中被调用。我从here获得了控制权。另外,我附加了一个Tap事件控制器。

更新

我在用户控件中实现了一个自定义方法来销毁。但是,这并没有释放记忆。

public void destroyImage()
    {
        Storyboard anim1 = (Storyboard)FindName("liveTileAnim1_Part1");
        anim1.Stop();
        Storyboard anim2 = (Storyboard)FindName("liveTileAnim1_Part2");
        anim2.Stop();
        Storyboard anim3 = (Storyboard)FindName("liveTileAnim2_Part1");
        anim3.Stop();
        Storyboard anim4 = (Storyboard)FindName("liveTileAnim2_Part2");
        anim4.Stop();
        (this.image1.Source as BitmapImage).UriSource = null;
        (this.image1.Source) = null;
        this.image1 = null;
    }

0 个答案:

没有答案