我是否必须从可以返回到托管C#项目的Windows运行时组件中创建的类中释放内存?
这个问题涉及类而不是像How to free memory of c++ WinRT value structs
这样的结构发生以下情况
我想确保以下类不会造成内存泄漏:https://github.com/cmusphinx/pocketsphinx-wp-demo/blob/master/PocketSphinxRntComp/SpeechRecognizer.h#L32
我(仍然)新的释放记忆,并且无法知道如何以及何时释放它。任何人吗?
答案 0 :(得分:1)
所有ref
类都是引用计数的,并且在没有更多实时引用时将自动释放。因为.NET使用垃圾收集器,所以内存可能不会立即释放。
如果您的应用程序或库中有循环引用,那么对象的引用计数将永远不会为零,并且内存将不会被回收(如果管理了所有对象,.NET可以处理循环引用,但如果它们是来自托管世界之外,就像你的C ++类一样。)
你的C ++代码是否有内部内存泄漏是另一个问题。