2011-11-30 74 views
0

我的應用程序有兩個列表當列表變得太大時如何處理OutOfMemoryException?

public ObservableCollection<StreamItemViewModel> SearchStreamItems { get; private set; } 
public ObservableCollection<StreamItemViewModel> MyStreamItems { get; private set; } 

,各是一個ListBox的數據源。每次點擊按鈕more時,應用程序會加載100個新項目,並且在點擊幾次之後就會拋出OutOfMemoryException

有沒有辦法避免異常?或者我該怎麼做?停止加載更多更新?

回答

3

,而不是加載一切這既不可能,也真的希望我會用一個滑動窗口,而不是 - 當你達到一定的最大列表大小(比如即300項),當您添加你自動刪除前100個項目下100個項目。

如果您在更新後立即滾動,用戶甚至不應該注意到這一點。

0

這取決於您無法加載更多內容時所要執行的操作。你可以使用一個嘗試捕捉這樣的忽略它:

try 
{ 
    ... load more 
} 
catch (OutOfMemoryException) 
{ 
    ... ignore or clear out old ones, then call call again 
} 

或者你可以瘦下來的對象你加載了一點,所以更加能適應。這隻取決於你認爲應該是允許/接受的行爲。