Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows Phone 8中的System.Diagnostics.Process在哪里?_C#_.net_Process_Windows Phone 8 - Fatal编程技术网

C# Windows Phone 8中的System.Diagnostics.Process在哪里?

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

我遇到了一个问题,Windows Phone 8应用程序中的部分代码正在调用
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。