C# 不使用dispose方法释放非托管代码的内存
我在我的C#项目中安装了一个使用非托管代码的NuGet包。我已经创建了一个密封类的对象。类中未定义dispose方法。如何释放非托管内存? 我可以看到我的内存使用量在一次又一次地增加,我的应用程序也被淘汰了。 我的代码是C# 不使用dispose方法释放非托管代码的内存,c#,.net,clr,pdfium,C#,.net,Clr,Pdfium,我在我的C#项目中安装了一个使用非托管代码的NuGet包。我已经创建了一个密封类的对象。类中未定义dispose方法。如何释放非托管内存? 我可以看到我的内存使用量在一次又一次地增加,我的应用程序也被淘汰了。 我的代码是 var bitmap = new PDFiumBitmap(100, 100, true); 我尝试了((IDisposable)位图).Dispose()它不工作 这里,PDFiumBitmap是一个非托管对象。我想释放记忆。 PDFiumBitmap给了我一个句柄。看起
var bitmap = new PDFiumBitmap(100, 100, true);
我尝试了((IDisposable)位图).Dispose()代码>它不工作
这里,PDFiumBitmap是一个非托管对象。我想释放记忆。
PDFiumBitmap给了我一个句柄。看起来像一个指针
如果没有办法,您可以尝试将GC.collect()
放在您想要释放内存的地方(不太推荐)。将位图设置为null
如果设置为null,它将不会释放非托管内存PDFiumBitmap
由谁负责管理它使用的资源。您会说“我尝试了((IDisposable)位图)。Dispose()
;它不工作”。什么意思?它是编译的,还是没有改变您认为看到的行为?你是如何测量内存使用率的?“我的应用程序被踢出”是什么意思?这个类有一个Dispose方法。你确定它不是一次性的吗?我用的是nuget套装。该包不包含dispose方法