0
我添加動態DLL到我的應用程序。調用方法後,我有內存泄漏。這裏是我的代碼:動態DLL方法調用內存泄漏
static IntfClass GetIClass(string filename)
{
Assembly classLibrary1 = null;
using (FileStream fs = File.Open(filename, FileMode.Open))
{
using (MemoryStream ms = new MemoryStream())
{
byte[] buffer = new byte[1024];
int read = 0;
while ((read = fs.Read(buffer, 0, 1024)) > 0)
ms.Write(buffer, 0, read);
classLibrary1 = Assembly.Load(ms.ToArray());
}
}
foreach (Type type in classLibrary1.GetExportedTypes())
{
if (type.GetInterface("IntfClass") != null)
return Activator.CreateInstance(type) as IntfClass;
}
throw new Exception("no class found that implements interface IntfClass");
}
呼籲:
IntfClass class1 = GetIClass("myDllName.dll");
Thread t = new Thread(new ParameterizedThreadStart(class1.runReport));
t.Start((object)report);
我附加螺紋,情況我的應用程序將控制轉移到DLL中,整理的dll方法完成後,將控制權又。
你正好與 「內存泄漏」 是什麼意思? Assembly.Load會將程序集加載到您的應用程序中,直到應用程序關閉時纔會釋放該程序集(該程序集將不會被卸載)。 – jbl
dll方法調用後,我有100 CPU使用率,一切工作緩慢。 –
什麼是DLL方法呢?我們可以看到這些代碼嗎? – Gareth