【发布时间】:2013-07-01 18:15:01
【问题描述】:
我使用的是 EE4,每次调用 _deviceSource.PreviewWindow = new PreviewWindow(new HandleRef(picBox, picBox.Handle)); 时,内存使用量都会增加大约 60 MB。问题是当我关闭表单并处理_job 和_devicesource 上的所有资源时,系统不会释放内存......即使我调用CG.collect(); 系统仍然使用那些60MB 做某事。如果我尝试多次调用表单,问题会更糟。在某些时候,我得到内存不足错误,因为内存利用率不断增加。
有什么建议吗?我检查了 SDK 示例,在所有情况下问题仍然存在。所以我的问题是:这是一个错误吗?
【问题讨论】:
-
泄漏可能发生在本机域(非托管)资源,尤其是与视频相关的资源中,并且可能与涉及的第三方库有关。没有具体信息很难给出建议,但您也许应该
1检查加载了哪些非 MS DLL2问题是否发生在干净的 Windows 中 -
谢谢@Roman R。我将检查计算机上是否有任何非 Microsoft 编解码器,但我在不同的计算机上尝试过相同的结果。每次我执行 PreviewWindow 属性时,我都可以看到即使在表单完成 Disposed 并调用垃圾收集器之后也没有释放的内存量。如果我保持父表单处于活动状态,则每次调用加载视频的子表单时,内存利用率都会增加。我测试了一些使用 Encoder 4 的其他示例,结果相同。
标签: sdk expression-encoder-sdk expression-encoder-4