我有一个从我的.Net c#代码调用的dll本机方法。每次调用该方法时,它都会占用Windows内存空间。在某一时刻,我的代码由于内存不足而失败。如何释放Windows内存空间?
发布于 2015-05-28 17:45:39
本机方法应该允许您访问用于释放它所分配的内存的方法,或者它应该告诉您它是如何分配的以及如何释放它。
通常,如果一个方法返回一个指针(或string,或句柄!如果你不问自己这个问题,你可能会产生一个内存泄漏。
然后,您应该注意由包含字符串或指向其他对象的指针的库构建的可疑结构(“对象”),并确保.NET封送拆收器能够在必要时释放内存。
一般来说,处理pinvokes的内存是很复杂的!这需要非常小心,即使编组员可能会向您隐藏一些东西。
请参阅https://stackoverflow.com/a/18172997/613130和https://stackoverflow.com/a/29508809/613130
那么内存泄漏总是有可能是由错误的代码dll端引起的,然后除了纠正dll代码中的错误之外什么都不做/联系编写它的人
https://stackoverflow.com/questions/30502732
复制相似问题