Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 卸载AppDomain会使程序崩溃_C#_Appdomain - Fatal编程技术网

C# 卸载AppDomain会使程序崩溃

C# 卸载AppDomain会使程序崩溃,c#,appdomain,C#,Appdomain,我创建了一个新的AppDomain=>NewAppDomain 当我尝试卸载NewAppDomain时,出现异常: “LocalDataStoreSlot存储已释放。”我的程序正在崩溃。 为什么会发生异常 一些代码: public class ActivatedAddIn : DisposableClass { public AppDomain AppDomain { get; internal set; } internal IBaseAddInApp Proxy { get

我创建了一个新的AppDomain=>NewAppDomain

当我尝试卸载
NewAppDomain
时,出现异常: “LocalDataStoreSlot存储已释放。”我的程序正在崩溃。 为什么会发生异常

一些代码:

public class ActivatedAddIn : DisposableClass
{
    public AppDomain AppDomain { get; internal set; }

    internal IBaseAddInApp Proxy { get;  set; }

    public void Shutdown()
    {
      Dispose();
    }

    public void Dispose()
    {
        //Here the crash :((( 
        AppDomain.Unload(AppDomain);
        AppDomain = null;
        Proxy = null;
        GC.WaitForPendingFinalizers();
        GC.Collect();

    }
}
外接程序的窗口关闭事件:

ActivatedAddIn runnedAddIn = RunnedAddIns.FirstOrDefault(item => item.ActivatedAddIn.Proxy.RunnedId == runnedAddInId);
if(runnedAddIn == null) return;
RunnedAddIns.Remove(runnedAddIn);
runnedAddIn.ShutdownAddIn();

你需要提供一些代码才能得到合理的答案。你有代码给我们吗?一般来说,看看这篇关于msdn的简单文章:我真的不明白卸载域时会发生什么以及为什么调用AppDomain.SetData(这里发生异常)方法…我意识到,当我创建用户控件(窗口等)时,卸载AppDomain时会发生异常,如果新AppDomain不包含任何用户控件,AppDomain将完全卸载(我测试了加载/卸载10/15次,没有引发异常)。如何解决这个问题?