.NET CF应用程序进程没有终止。我们使用基于AxHost的Windows Media Player组件

时间:2010-02-16 11:12:57

标签: c# windows-mobile compact-framework windows-media-player

基于.NET CF的应用程序中的Windows Media Player问题是无穷无尽的。在其中一个.NET CF 3.5应用程序中,我们使用ActiveX控件来播放视频。媒体播放器ActiveX控件的代码来自this MSDN article。它几乎没有内存泄漏问题,但错误是sorted out with the help of this article

新问题 - 当我们终止应用程序时,它会关闭用户界面,但进程在后台运行。这可以在任务管理器的“进程”选项卡中看到。这种悬挂过程使系统完全不稳定。播放完几个视频后,整个系统会挂起并强制重启。

请帮助我理解为什么流程在关闭后挂在后台,代码中的修复程序会完全终止该流程。

1 个答案:

答案 0 :(得分:0)

首先,您确定要在代码中终止您的应用程序(并且此代码正在执行),或者是用户单击右上角的X(对于触摸屏设备)。我问,因为默认情况下X不关闭应用程序 - 它只会最小化它(除非你采取行动自己做更多事情等)。

假设这不是问题,基于这个有限的信息很难回答,但我的猜测是,有一个ActiveX对象没有正确发布。如果您将应用程序的引用传递给您正在使用的ActiveX控件(如果您没有告诉其他控件释放您),则该对象可能是您自己的应用程序。因此,我建议您浏览代码并清点所有COM对象,创建它们的位置,AddRef'ed等等,并确保释放和/或将它们设置为null(可能还有其他适当的清理对象本身,例如首先告诉他们停止播放任何东西等。)。

P.S。你的帖子有点含糊不清,问题是应用程序是否应该退出,或者是否导致设备在故意运行一段时间后挂起...