2013-04-09 2 views
0

내 응용 프로그램이 512mb 전화 에뮬레이터 (테스트 할 수있는 920 만)에서 실행될 때 한 지점에서 갑자기 충돌 (재현 가능)합니다. 예외는 없었습니다. 그냥 검은 색이었습니다. 그런 다음 응용 프로그램에서 분석 도구를 실행하여 응용 프로그램이 손상된 시점에서 메모리가 한계에 도달했음을 알았습니다. 앱이 오류 코드와 함께 종료됩니다. 내가 찾은 가장 최근의 것은 0x887a0005였습니다.하지만 나는 조금 다른 시간을 다시 보았습니다. 슬프게도, 나는 그 어느 곳도 가지고 있지 않다.No SystemOutOfMemoryException

CreateBackground 옵션을 사용하여 웹에서 약 600 개의 이미지를 BitmapImages로로드하고 ImageOpened 이벤트를 처리합니다.

문제 자체를 관리하는 데 도움을 요청하는 것이 아니며 해결 방법을 찾을 수 있습니다. 나는 왜 애플 리케이션이 예외를 던지지 않는지 궁금해하고 대신 단지 충돌합니다. 어떤 아이디어 그녀

+0

리틀 왓슨 (Little Watson)과 같은 것을 구현하여 이러한 처리되지 않은 예외를 기록 할 수 있습니다 (디버깅 할 때 던져지지 않더라도 한 가지가있을 것입니다). http://blogs.msdn.com/b/andypennell/archive/2010/11/01/error-reporting-on-windows-phone-7.aspx. 내 애플 리케이션 중 하나에서 이것을 사용하고 아주 잘 작동합니다. – lhan

답변

1

이것은 예상되는 동작입니다. 메모리가 부족한 순간 실행중인 코드에 따라 특정 .NET 클래스 또는 laying 클래스에 의해 throw 될 수있는 메모리 부족 예외가 throw 될 수 있습니다. 그러나 운영체제는 이런 일이 일어날 때까지 기다리지 않고 보통 앱을 종료합니다. 앱에 "종료"또는 "메모리 부족"신호를 보내지 않고 그냥 죽입니다.

+0

흥미 롭습니다. 기대했던 행동인지 몰랐습니다. – SBoss