AppDomain.卸载问题

本文关键字:问题 卸载 AppDomain | 更新日期: 2023-09-27 18:01:15

调用appdomain.Unload(name(方法时是否卸载appdomain。或者它标记下一个垃圾收集。我有以下情况AppDomains的集合。ListApp从ListApp卸载特定域,例如d1卸载d1后立即再次创建域d1并将其添加到ListApp中当我使用d1.CreateInstanceAndUnwrap((方法时,它抛出异常"试图访问卸载的应用程序域">

public static IDictionary<object, AppDomain> LoadedDomains { get; internal set; }
private static void Load(object key)
{
    if (!LoadedDomains.Contains(key))
    {
        AppDomain domain = AppDomain.CreateDomain("t");
        LoadedDomains.Add(key, domain);
    }
}
private static void UnLoad(object key)
{
    if (LoadedDomains.Contains(key))
    {
        AppDomain.Unload(LoadedDomains(key));
        LoadedDomains.Remove(key);
    }
}
private static void Execute()
{
    object key = new object();
    Load(key);
    Unload(key);
    Load(key);
    MyObject myobj= LoadedDomains[key].CreateInstance("asName", "type");
}

AppDomain.卸载问题

这听起来像是在描述一个多线程问题,而不是垃圾收集问题,因为在您的代码中,它试图在卸载域之后,但在创建新域并将其分配给变量之前访问域。

Unload同步卸载有问题的AppDomain,如果无法卸载该域,则会引发异常。

需要更多代码来进一步帮助。。。

我在代码中发现了问题。正在卸载域,但不刷新词典。