【问题标题】:My dll won't unload even when i unload appdomain即使我卸载 appdomain,我的 dll 也不会卸载
【发布时间】:2016-05-16 16:26:47
【问题描述】:

我不明白为什么在我执行 AppDomain.Unload 后我的 DLL 仍然在程序的内存中。我可以做错什么吗?

AppDomain appDomain = AppDomain.CreateDomain("MyAuthDomain");
appDomain.DoCallBack(load_Auth);

var isLogin = (bool)appDomain.GetData("IsLogin");

AppDomain.Unload(appDomain);

private static void load_Auth()
{
    var form = new Compiler(File.ReadAllBytes(Environment.CurrentDirectory + @"\form.dll"), "form");
    form.InvokeMember("ShowDialog");

    AppDomain.CurrentDomain.SetData("IsLogin", (bool)form.GetField("IsLogin")); 
    form.Unload();
}

附言 我如何理解 DLL 保留在内存中? NETUnpack 告诉我。

【问题讨论】:

    标签: c# dll appdomain domainunload


    【解决方案1】:

    这对我有帮助

    AppDomain.Unload(appDomain);
    
    //GC
    GC.Collect();
    GC.WaitForPendingFinalizers();
    GC.Collect();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-12
      • 2018-11-08
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多