0
我遇到了一个问题,其中一部分Windows Phone 8应用程序中的代码正在调用System.OutOfMemoryException
。我想使用Process.GetCurrentProcess();
来检查可用内存,但一直未能找到它,因为它似乎不存在于System.Diagnostics
命名空间中。Windows Phone 8中的System.Diagnostics.Process在哪里?
是我唯一的选择开始尝试直接调用Windows API(假设甚至可能)?我想要获得当前流程的真正原因是为我的应用程序确定可用内存总量。
任何帮助善良赞赏。
编辑:
这是代码
public async static Task<T> InvokeServiceAsync<T>(string BaseAddress, string Path, params object[] ParamArray)
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(BaseAddress);
HttpResponseMessage response = await client.GetAsync(string.Format("{0}{1}", Path, MvcUtilities.BuildWebApiRequest(ParamArray)));
response.EnsureSuccessStatusCode();
T result = await response.Content.ReadAsAsync<T>(); //Out of memory exception
return result;
}
只是为了清楚它不是关于我从OutOfMemoryException中恢复的问题,它只是为了试图了解我的应用程序中有多少内存可供我作为开发人员使用。我只用了30-40mb的内存。 –
从技术上来说,除了虚拟内存之外,可能会耗尽操作资源。你发布的问题没有提供什么可能的提示,至少需要堆栈跟踪。看着其他过程永远不会给你提示。 –
我的确了解可能还有其他的例外原因,但这并不是真正的问题,在一天结束时肯定有一些方法可以确定当前可用的内存吗?无论哪种方式,我会更新确切的代码,以提供更好的上下文。 PS:欣赏你的输入! –