0

Windows Media Player 在基于 .NET CF 的应用程序上的问题是无穷无尽的。在其中一个 .NET CF 3.5 应用程序中,我们使用 ActiveX 控件播放视频。媒体播放器 ActiveX 控件的代码来自此 MSDN 文章。它几乎没有内存泄漏问题,但是在本文的帮助下解决了这些错误。

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

请帮助我理解为什么进程在关闭后挂在后台,以及代码中的修复完全终止了进程。

4

1 回答 1

0

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

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

PS您的帖子有点模棱两可,问题是应用程序在应该退出时没有退出,还是在故意运行一段时间后导致设备挂起......

于 2010-02-17T03:38:44.707 回答