UWP设备总内存

时间:2016-04-24 16:19:39

标签: c# memory size win-universal-app

如何确定设备总内存?我想在低内存设备上使用顺序程序流,在更高内存设备上使用更多异步流程。

示例:在具有1GB内存的设备上,我的程序可以正常工作,但在512MB设备上,我的程序遇到OutOfMemoryException,因为它异步缓存来自多个站点的图像。

1 个答案:

答案 0 :(得分: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));
}

您可以使用应用程序的内存限制来决定如何最好地管理内存分配。