2009-05-05 5 views
0

저는 C#과 CF로 작업 중이므로 MessageWindow를 사용하여 Windows 메시지를 가로 챌 필요가 있습니다.MessageWindow - 그것이 파괴되었는지 어떻게 알 수 있습니까?

예기치 않게 MessageWindow가 사라지는 시나리오가있을 수 있습니다. 이것은받는 메시지가 중요하고 Window가 죽었다는 사실을 기록하고 싶기 때문에 문제입니다.

불행히도 이런 종류의 알림을받을 수있는 방법이 없습니다 (최소한 Managed API는 아님). 누구든지 도와 줄 수 있습니까?

답변

1

"죽는다"는 것이 무슨 뜻인지는 모르지만 일반적으로 Window (MessageWindow의 기반이되는 것을 포함하여)가 파괴되면 WM_DESTROY 호출이 발생합니다. 당신은 WndProc에서 그것을 찾을 수 있습니까?

+0

필자는 백그라운드 스레드에서이 파일을 생성하고 OpenNETCF에서 Application2.Run()을 실행했습니다. 로깅 코드가 아래에 있으므로 로그인 할 때 로그를 남깁니다. – Quibblesome

1

몇 가지 아이디어 :

"ping"명령을 실행할 수 자신의 모든 X 간격의 특별한 메시지를 생성함으로써 MessageWindow? 이 "핑 (ping)"을 확인하면 약 1 분 이내에 파손을 감지 할 수 있습니다. X 시간.

또는 Dispose 또는 Finalize calls를 재정의 할 수 있습니까? 이것들이 불려지면. 나는 예외도 던져지지 않는다고 가정하고있다.

+0

예, MessageWindow는 (기본 레벨에서) IDisposable을 구현하지 않으며 확정적인 결정을 내리지 않을 것이며 finalizer에서 다른 객체 (예 : 로거)를 만지길 원할 수도 없습니다. – Quibblesome

관련 문제