我正在构建一个 Windows Phone 应用程序,该应用程序在一个页面中进行视频捕获,并在另一个页面中有一个自定义播放器。我正在使用我自己的自定义编解码器,因此播放器需要大量DispatcherTimer
来跟踪 UI 部分的一些行为,并在编解码器部分以良好的帧速率提供电影。
我正在尝试释放所有DispatcherTimer
内容,因为我知道它们是 CPU 密集型的,但即使停止它们,我的应用程序仍然很慢。如果我按后退然后顺流,速度每次除以二。如果我不使用我的播放器,一切都可以。我的播放器只有 3 个DispatcherTimer
,一个 FileStream 和一个 Image 框。
我觉得它DispatcherTimer
仍然在内存中运行并且是双重实例化的,即使它们直接在页面上被实例化为私有。
我可以强制页面释放所有这些东西吗?
实际上我还不明白导航到当前页面旁边的页面或导航回来之间有什么区别。我不知道 ie 如何在不调用 InitializeComponents 的情况下再次显示页面,所以我对要释放哪些资源以及要保持哪些资源保持不变感到困惑。