C# Windows Phone 8中的System.Diagnostics.Process在哪里?
我遇到了一个问题,Windows Phone 8应用程序中的部分代码正在调用C# Windows Phone 8中的System.Diagnostics.Process在哪里?,c#,.net,process,windows-phone-8,C#,.net,Process,Windows Phone 8,我遇到了一个问题,Windows Phone 8应用程序中的部分代码正在调用System.OutOfMemoryException。我想使用Process.GetCurrentProcess()检查可用内存,但由于System.Diagnostics命名空间中似乎不存在该内存,因此无法找到该内存 是否是我开始尝试直接调用Windows API的唯一选择(假设这是可能的)?我想要获得当前进程的真正原因是确定应用程序的总可用内存 非常感谢您的帮助 编辑: 这是密码 public async stat
System.OutOfMemoryException
。我想使用Process.GetCurrentProcess()
检查可用内存,但由于System.Diagnostics
命名空间中似乎不存在该内存,因此无法找到该内存
是否是我开始尝试直接调用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;
}
public async静态任务InvokeServiceAsync(字符串基地址、字符串路径、params对象[]ParamArray)
{
HttpClient=新的HttpClient();
client.BaseAddress=新Uri(BaseAddress);
HttpResponseMessage response=wait client.GetAsync(string.Format(“{0}{1}”,Path,MvcUtilities.BuildWebApiRequest(ParamArray));
response.EnsureSuccessStatusCode();
T result=wait response.Content.ReadAsAsync();//内存不足异常
返回结果;
}
不,手机应用程序无法启动或枚举进程。winapi漏洞也被关闭,由SDK头、证书和沙箱强制执行。即使它可用,代码也不太可能在OOM条件下运行
这从来不是另一个过程,导致它,手机运行一个虚拟内存需求页面操作系统。从OOM中恢复是非常困难的,尝试没有什么意义。你需要尽量少分配内存。我想澄清的是,这不是我从OutOfMemoryException中恢复,而是我试图了解作为应用程序开发人员,我有多少可用内存。我只使用了30-40mb的内存。从技术上讲,通过耗尽虚拟内存以外的操作资源,可能会引发异常。您发布的问题并没有提示可能是什么,至少需要一个堆栈跟踪。查看其他进程永远不会给你任何提示。我确实理解异常可能有其他原因,但这并不是真正的问题,在一天结束时,我肯定有办法确定当前可用的内存?无论哪种方式,我都将使用精确的代码进行更新,以提供更好的上下文。PS:感谢您的意见!可用内存是一个固定的数字,每个32位进程获得2G字节。如果你知道你已经消耗了40兆字节,那么你还剩下1960兆字节。一定要区分虚拟内存和RAM,这是两种截然不同的内存。使用40兆RAM的进程通常会使用更多的虚拟内存。不,没有简单的方法可以确定还剩多少虚拟机。@HansPassant:我想这是关于WindowsPhone8的,在WindowsPhone8中,一个应用程序也有固定数量的RAM,即150MB。