Windows Media Player在基于.NET CF的应用程序上的问题是无穷无尽的。在一个.NET CF 3.5应用程序中,我们使用ActiveX控件来播放视频。媒体播放器ActiveX控件的代码来自this MSDN article。它几乎没有内存泄漏问题,但错误是sorted out with the help of this article。
新的问题-当我们终止应用程序时,它会关闭用户界面,但进程是在后台运行的。这可以在任务管理器的进程选项卡中看到。这种挂起过程使系统完全不稳定。在为几个人播放视频后,整个系统挂起并强制重启。
请帮助我理解为什么进程关闭后会在后台挂起,以及代码中的哪些修复会完全终止进程。
发布于 2010-02-17 11:38:45
首先,你确定你正在用代码终止你的应用程序(并且这段代码正在执行),或者用户正在点击右上角的X(对于触摸屏设备)。我之所以这样问,是因为X不会默认关闭应用程序--它只会最小化它(除非你自己采取行动做更多的事情,等等)。
假设这不是问题所在,根据这些有限的信息很难回答,但我猜可能有一个ActiveX对象没有正确发布。有问题的对象可能是您自己的应用程序,如果您将对您的应用程序的引用传递给您正在使用的ActiveX控件(如果您没有告诉其他控件释放您)。因此,我建议您仔细检查您的代码并清点所有COM对象,包括它们的创建位置、AddRef‘’ed位置等,并确保您正在释放它们和/或将它们设置为null (可能需要对对象本身进行额外的适当清理,例如首先告诉它们停止播放任何内容等)。
附言:你的帖子有点模棱两可,问题是应用程序在应该退出的时候没有退出,还是在故意运行了一段时间后导致设备挂起……
https://stackoverflow.com/questions/2272372
复制相似问题