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의 메모리 만 사용했다. –
기술적으로 가상 메모리 이외의 운영 리소스를 소모하여 예외가 발생할 수 있습니다. 게시 된 질문은 스택에 대한 힌트를 제공하지 않습니다. 적어도 스택 추적이 필요합니다. 다른 프로세스를 살펴보면 결코 힌트를주지 않을 것입니다. –
예외에 대한 다른 이유가있을 수 있다는 것을 이해합니다.하지만 실제로 문제가 아닙니다. 하루가 끝날 때 현재 사용 가능한 메모리를 확인하는 방법이 분명히 있습니다. 어느 쪽이든 정확한 컨텍스트를 제공하기 위해 정확한 코드로 업데이트 할 것입니다. 추신 : 귀하의 의견을 감사드립니다! –