2016-04-24 69 views
3

如何確定設備總內存?我想在低內存設備上使用順序程序流程,在高端內存設備上使用更異步的流程。UWP設備總內存

示例:在具有1GB內存的設備上,我的程序工作正常,但在512MB設備上,我的程序因異步緩存來自多個站點的圖像而遇到OutOfMemoryException。

回答

4

MemoryManager類有一些靜態屬性來獲取應用程序的當前使用情況和限制。

// Gets the app's current memory usage. 
MemoryManager.AppMemoryUsage 

// Gets the app's memory usage level. 
MemoryManager.AppMemoryUsageLevel 

// Gets the app's memory usage limit. 
MemoryManager.AppMemoryUsageLimit 

您可以使用MemoryManager.AppMemoryUsageLimitChanging事件

private void OnAppMemoryUsageLimitChanging(
    object sender, AppMemoryUsageLimitChangingEventArgs e) 
{ 
    Debug.WriteLine(String.Format("AppMemoryUsageLimitChanging: old={0} MB, new={1} MB", 
     (double)e.OldLimit/1024/1024, 
     (double)e.NewLimit/1024/1024)); 
} 

您可以使用應用程序的內存限制,以決定如何最好地管理你的內存分配變化的極限反應。

+0

如何獲取設備中安裝的總RAM? – hellodear