[英]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.