C# MessageWindow-如何判断它是否已被销毁?

C# MessageWindow-如何判断它是否已被销毁?,c#,compact-framework,messagewindow,C#,Compact Framework,Messagewindow,我正在使用C#和CF,我需要使用MessageWindow来拦截Windows消息 可能存在MessageWindow意外死亡的情况。这对我来说是个问题,因为它接收到的消息有点重要,我想记录窗口死机的事实 不幸的是,我看不到任何方式(至少在托管API中是这样)可以获得这种通知。有人能帮忙吗?一些想法: 你能通过每X间隔生成一条自己的特殊消息来“ping”消息窗口吗?然后检查此“ping”,这样您可以确保在大约X时间内检测到破坏 或者您可以覆盖Dispose或Finalize调用吗?如果有人打电话

我正在使用C#和CF,我需要使用MessageWindow来拦截Windows消息

可能存在MessageWindow意外死亡的情况。这对我来说是个问题,因为它接收到的消息有点重要,我想记录窗口死机的事实

不幸的是,我看不到任何方式(至少在托管API中是这样)可以获得这种通知。有人能帮忙吗?

一些想法:

你能通过每X间隔生成一条自己的特殊消息来“ping”消息窗口吗?然后检查此“ping”,这样您可以确保在大约X时间内检测到破坏


或者您可以覆盖Dispose或Finalize调用吗?如果有人打电话给他们。我还假设没有抛出异常。

不确定“死亡”是什么意思,但一般来说,当一个窗口被销毁(包括MessageWindow的底层窗口)时,您将收到WM_销毁调用。你能在WndProc中找到它吗?

是的,我可以ping,MessageWindow没有实现IDisposable(在基本级别),Finalize也不会是特别确定的,我也不想在Finalizer中触摸其他对象(如记录器)。我最终只是在后台线程上创建它,并从OpenNETCF运行Application2.Run()。记录代码就在下面,所以我们在它退出时记录它。