C# “如何检测”;OutOfMemory“;在UWP或UWP等效物中;我收到了“记忆警告”;在ios中

C# “如何检测”;OutOfMemory“;在UWP或UWP等效物中;我收到了“记忆警告”;在ios中,c#,uwp,out-of-memory,didreceivememorywarning,C#,Uwp,Out Of Memory,Didreceivememorywarning,UWP应用程序中是否有与ios“DidReceiveMemoryWarning”类似的功能 我想在UWP应用程序抛出任何错误之前检测SystemOutOfMemory 提前谢谢 Noorul在UWP中,您可以使用事件来检测,当应用程序的内存消耗在AppMemoryUsageLevel枚举中增加到更高的值时,会引发该事件 Windows.System.MemoryManager.AppMemoryUsageIncreased += MemoryManager_AppMemoryUsageIncre

UWP应用程序中是否有与ios“DidReceiveMemoryWarning”类似的功能

我想在UWP应用程序抛出任何错误之前检测SystemOutOfMemory

提前谢谢

Noorul

在UWP中,您可以使用事件来检测,当应用程序的内存消耗在AppMemoryUsageLevel枚举中增加到更高的值时,会引发该事件

Windows.System.MemoryManager.AppMemoryUsageIncreased += MemoryManager_AppMemoryUsageIncreased;

private void MemoryManager_AppMemoryUsageIncreased(object sender, object e)
{
     // do something            
}

是的,我们需要使用
MemoryManager.appmemoryusage
事件,这要感谢@Faywang-MSFT的回答,但我们只需要做很少的工作

即使在应用程序启动时,也将调用此
MemoryManager.AppMemoryUser
。我对这种行为有点困惑,最终发现我们需要检查该事件中的内存使用情况

这是我使用的确切代码

private void MemoryManager_AppMemoryUsageIncreased(object sender, object e)
{
    // Obtain the current usage level
    var level = MemoryManager.AppMemoryUsageLevel;

    // Check the usage level to determine whether reducing memory is necessary.
    // Memory usage may have been fine when initially entering the background but
    // the app may have increased its memory usage since then and will need to trim back.
    if (level == AppMemoryUsageLevel.OverLimit || level == AppMemoryUsageLevel.High)
    {
        HandleOutOfMemory();
    }
}
这是我得到这个答案的线索。

是否存在,我们可以在调试时对其进行测试!您可以添加一些消耗内存的操作来测试它。