繁体   English   中英

内存泄漏:MVVM和LongListSelector(WP8)上的照片

[英]Memory Leak: MVVM and photos on a LongListSelector (WP8)

我正在尝试将一些(HD)照片绑定到LongListSelector,如您在此处看到的:

        <phone:LongListSelector
            Name="Photos"
            LayoutMode="Grid"
            ItemsSource="{Binding Items}"
            GridCellSize="225, 225"                
            <phone:LongListSelector.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Image Name="Photo"
                         Source="{Binding Source}"
                    </Grid>
                </DataTemplate>
            </phone:LongListSelector.ItemTemplate>
        </phone:LongListSelector>



            Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                foreach (string item in resultList)
                {
                    u = new Uri(item, UriKind.RelativeOrAbsolute);
                    this.Items.Add(new DataItemViewModel() { Source = u});
                }                    
            });            

但是每次我回到主页并单击以重新开始时(使用新的/不同的照片)时,ApplicationPeakMemoryUsage一直在增加,直到应用程序终止为止...

很抱歉,这是一个基本问题,但是我是C#的新手。

有什么提示吗?

(也许是当用户单击“后退”按钮时处置LongListSelector或整个页面的一种方法)

谢谢。

上次遇到此问题时,我使用了IDipose模式。 我遇到的问题是使用第三方dll时,CLR没有从dll中清除对象。

在实现IDispose模式之后,无论何时使用该特定对象,我都会将其放入“ using”语句中,以确保在“ using”语句作用域的末尾对其进行处理。 有关using语句的更多信息: http : //www.dotnetperls.com/using

为了使我首先意识到这一点,我调试了代码并观看了任务管理器。 在代码的开头创建一个断点,然后打开任务管理器,然后单击“进程”选项卡。 在您认为问题可能出在某些地方之后,请注意内存使用量大量增加的地方。

完成此操作后,请尽快与我联系。

希望对您有所帮助,如果没有任何帮助,请尽快与我联系:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM