C# MediaFoundation EVR渲染泄漏内存

C# MediaFoundation EVR渲染泄漏内存,c#,memory-leaks,ms-media-foundation,C#,Memory Leaks,Ms Media Foundation,我正试图在C#上构建一个媒体播放器,包括SourceReader和EVRRender,方法是遵循示例,并使用MediaFoundation.Net库编写代码,但当我运行很长时间时,它会泄漏内存 用C++编写的样本,经过长时间的测试,效果良好。在我的代码中,它看起来类似于示例C++中的代码,但是在长时间运行时会泄漏内存。 有人能帮我吗? 非常感谢您的帮助。请与我们分享您的代码和相关部分。您有什么理由不能使用WinRT MF API吗?这将比您正在引用的MF扩展库容易得多。在.NET中,并不是因为

我正试图在C#上构建一个媒体播放器,包括SourceReader和EVRRender,方法是遵循示例,并使用MediaFoundation.Net库编写代码,但当我运行很长时间时,它会泄漏内存

用C++编写的样本,经过长时间的测试,效果良好。在我的代码中,它看起来类似于示例C++中的代码,但是在长时间运行时会泄漏内存。

有人能帮我吗?
非常感谢您的帮助。

请与我们分享您的代码和相关部分。您有什么理由不能使用WinRT MF API吗?这将比您正在引用的MF扩展库容易得多。在.NET中,并不是因为内存增长,所以您必然存在物理内存泄漏。由于您没有为使用的每个COM对象手动调用ReleaseComObject(有时在.NET中并不容易),因此可以尝试定期调用GC.Collect,看看它是否有改进。另一个问题是,如果字节[]分配,您会做很多事情。如果这些堆的大小大于85K,则它们将进入大型对象堆,而该对象堆不像标准堆那样容易收集。您可能想摆脱这些,使用IntPtr(但我想这取决于您使用的库),谢谢您的建议。