我创建了一个新的 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();