簡體   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